Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak usuwać obiekty blob za pomocą modułu klienta usługi Azure Storage dla języka Go, oraz jak przywracać miękko usunięte obiekty blob w okresie przechowywania.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz jedną bezpłatnie
- Konto usługi Azure Storage — tworzenie konta magazynu
- Przejdź do wersji 1.18 lub nowszej
Konfigurowanie środowiska
Jeśli nie masz istniejącego projektu, w tej sekcji pokazano, jak skonfigurować projekt do pracy z modułem klienta usługi Azure Blob Storage dla języka Go. Kroki obejmują instalację modułu, dodawanie import ścieżek i tworzenie autoryzowanego obiektu klienta. Aby uzyskać szczegółowe informacje, zobacz Wprowadzenie do usługi Azure Blob Storage i Go.
Instalowanie modułów
Zainstaluj moduł azblob przy użyciu następującego polecenia:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Aby uwierzytelnić się przy użyciu identyfikatora Entra firmy Microsoft (zalecane), zainstaluj azidentity moduł przy użyciu następującego polecenia:
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Dodawanie ścieżek importu
W pliku kodu dodaj następujące ścieżki importu:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Te ścieżki importu reprezentują minimum wymagane do rozpoczęcia pracy. Niektóre przykłady kodu w tym artykule mogą wymagać dodatkowych ścieżek importu. Aby uzyskać szczegółowe informacje i przykładowe użycie, zobacz Przykłady kodu.
Tworzenie obiektu klienta
Aby połączyć aplikację z usługą Blob Storage, utwórz obiekt klienta przy użyciu polecenia azblob. NewClient. W poniższym przykładzie pokazano, jak utworzyć obiekt klienta przy użyciu DefaultAzureCredential autoryzacji:
func getServiceClientTokenCredential(accountURL string) *azblob.Client {
// Create a new service client with token credential
credential, err := azidentity.NewDefaultAzureCredential(nil)
handleError(err)
client, err := azblob.NewClient(accountURL, credential, nil)
handleError(err)
return client
}
Autoryzacja
Mechanizm autoryzacji musi mieć uprawnienia niezbędne do usunięcia obiektu blob lub przywrócenia miękko usuniętego obiektu blob. Aby uzyskać autoryzację przy użyciu identyfikatora Entra firmy Microsoft (zalecane), potrzebujesz wbudowanej roli usługi Azure RBAC Współautora danych obiektów blob Storage lub wyższej. Aby dowiedzieć się więcej, zapoznaj się z poradami dotyczącymi autoryzacji dla Delete Blob (REST API) i Undelete Blob (REST API).
Usuń obiekt blob
Uwaga
Jeśli usuwanie tymczasowe obiektu blob jest włączone dla konta magazynu, nie można wykonać trwałego usuwania przy użyciu metod biblioteki klienta. Korzystając z metod opisanych w tym artykule, tymczasowo usunięty obiekt blob, wersja obiektu blob lub migawka pozostaje dostępna do momentu wygaśnięcia okresu przechowywania, po czym zostanie trwale usunięta. Aby dowiedzieć się więcej na temat podstawowej operacji interfejsu API REST, zobacz Usuwanie obiektu blob (interfejs API REST).
Aby usunąć obiekt blob, wywołaj następującą metodę:
Poniższy przykład usuwa obiekt blob:
func deleteBlob(client *azblob.Client, containerName string, blobName string) {
// Delete the blob
_, err := client.DeleteBlob(context.TODO(), containerName, blobName, nil)
handleError(err)
}
Jeśli obiekt blob ma skojarzone migawki, musisz usunąć wszystkie jego migawki, aby usunąć obiekt blob. Poniższy przykład usuwa obiekt blob i jego migawki:
func deleteBlobWithSnapshots(client *azblob.Client, containerName string, blobName string) {
// Delete the blob and its snapshots
_, err := client.DeleteBlob(context.TODO(), containerName, blobName, &blob.DeleteOptions{
DeleteSnapshots: to.Ptr(blob.DeleteSnapshotsOptionTypeInclude),
})
handleError(err)
}
Aby usunąć tylko migawki, a nie sam obiekt blob, możesz przekazać wartość DeleteSnapshotsOptionTypeOnly do parametru DeleteSnapshots .
Przywróć usunięty obiekt blob
Miękkie usunięcie chroni pojedynczy blob oraz jego wersje, migawki i metadane przed przypadkowym usunięciem lub nadpisaniem, utrzymując usunięte dane w systemie przez określony czas. Podczas okresu przechowywania możesz przywrócić blob do jego stanu w momencie usunięcia. Po wygaśnięciu okresu przechowywania, ten blob zostanie trwale usunięty. Aby uzyskać więcej informacji na temat miękkiego usuwania obiektów blob, zobacz Miękkie usuwanie dla obiektów blob.
Biblioteki klienta usługi Azure Storage umożliwiają przywrócenie nietrwałego obiektu blob lub migawki.
Sposób przywracania tymczasowo usuniętego obiektu blob zależy od tego, czy konto magazynu ma włączone wersjonowanie obiektów blob. Aby uzyskać więcej informacji na temat przechowywania wersji obiektów blob, zobacz Przechowywanie wersji obiektów blob. W zależności od scenariusza zapoznaj się z jedną z następujących sekcji:
Przywracanie tymczasowo usuniętych obiektów, gdy wersjonowanie jest wyłączone
Aby przywrócić usunięte obiekty blob, gdy przechowywanie wersji jest wyłączone, wywołaj następującą metodę:
Ta metoda przywraca zawartość i metadane obiektu blob po miękkim usunięciu oraz wszystkie powiązane z nim migawki po miękkim usunięciu. Wywołanie tej metody dla bloba, który nie został usunięty, nie ma wpływu.
func restoreDeletedBlob(client *azblob.Client, containerName string, blobName string) {
// Reference the blob as a client object
blobClient := client.ServiceClient().NewContainerClient(containerName).NewBlobClient(blobName)
// Restore the deleted blob
_, err := blobClient.Undelete(context.TODO(), &blob.UndeleteOptions{})
handleError(err)
}
Przywracanie obiektów usuniętych tymczasowo po włączeniu wersjonowania
Jeśli konto magazynu jest skonfigurowane do wersjonowania obiektów blob, usunięcie obiektu blob powoduje, że obecna wersja obiektu blob staje się wersją poprzednią. Aby przywrócić tymczasowo usunięty obiekt blob, gdy włączone jest przechowywanie wersji, nadpisz poprzednią wersję nad obiektem podstawowym. Można użyć następującej metody:
Poniższy przykład kodu identyfikuje wersję usuniętego obiektu blob i przywraca ją, kopiując ją do podstawowego obiektu blob:
func restoreDeletedBlobVersion(client *azblob.Client, containerName string, blobName string, versionID string) {
// Reference the blob as a client object
baseBlobClient := client.ServiceClient().NewContainerClient(containerName).NewBlobClient(blobName)
blobVersionClient, err := baseBlobClient.WithVersionID(versionID)
handleError(err)
// Restore the blob version by copying it to the base blob
_, err = baseBlobClient.StartCopyFromURL(context.TODO(), blobVersionClient.URL(), nil)
handleError(err)
}
Uwaga
Przykłady kodu w tym przewodniku ułatwiają rozpoczęcie pracy z usługami Azure Blob Storage i Go. Należy zmodyfikować obsługę błędów i Context wartości, aby spełniały potrzeby aplikacji.
Zasoby
Aby dowiedzieć się więcej na temat usuwania obiektów blob i przywracania usuniętych obiektów blob przy użyciu modułu klienta usługi Azure Blob Storage dla języka Go, zobacz następujące zasoby.
Przykłady kodu
- Wyświetlanie przykładów kodu z tego artykułu (GitHub)
Operacje interfejsu API REST
Zestaw Azure SDK dla języka Go zawiera biblioteki oparte na interfejsie API REST platformy Azure, które umożliwiają interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów języka Go. Metody biblioteki klienta do usuwania obiektów blob i przywracania usuniętych obiektów blob używają następujących operacji interfejsu API REST:
- Usuń Blob (interfejs API REST)
- Przywróć Blob (interfejs API REST)
Zasoby modułu klienta
Zobacz też
Powiązana zawartość
- Ten artykuł jest częścią przewodnika dla deweloperów usługi Blob Storage dla języka Go. Aby dowiedzieć się więcej, zobacz pełną listę artykułów z przewodnika dla deweloperów na stronie Tworzenie aplikacji języka Go.