Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek ukazuje, jak odstranit objekty blob pomocí klientského modulu Azure Storage pro Go a jak obnovit měkce smazané objekty blob během období uchovávání.
Požadavky
- Předplatné Azure – vytvoření bezplatného předplatného
- Účet úložiště Azure – Vytvoření účtu úložiště
- Go 1.18+
Nastavení prostředí
Pokud nemáte existující projekt, v této části se dozvíte, jak nastavit projekt pro práci s modulem klienta Azure Blob Storage pro Go. Kroky zahrnují instalaci modulu, přidání import cest a vytvoření autorizovaného klientského objektu. Podrobnosti najdete v tématu Začínáme se službou Azure Blob Storage a Go.
Instalace modulů
Pomocí následujícího příkazu nainstalujte modul azblob:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Pokud se chcete ověřit pomocí Microsoft Entra ID (doporučeno), nainstalujte azidentity modul pomocí následujícího příkazu:
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Přidání cest importu
Do souboru kódu přidejte následující cesty importu:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Tyto cesty importu představují minimum potřebné k zahájení práce. Některé příklady kódu v tomto článku můžou vyžadovat další cesty importu. Konkrétní podrobnosti a ukázkové použití najdete v ukázkách kódu.
Vytvoření objektu klienta
Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte objekt klienta pomocí příkazu azblob. NewClient. Následující příklad ukazuje, jak vytvořit objekt klienta pomocí DefaultAzureCredential pro autorizaci:
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
}
Autorizace
Autorizační mechanismus musí mít potřebná oprávnění k odstranění objektu blob nebo k obnově měkce smazaného objektu blob. K autorizaci pomocí Microsoft Entra ID (doporučeno) potřebujete předdefinovanou roli Azure RBAC Přispěvatel dat úložiště Blob nebo vyšší. Další informace najdete v pokynech pro autorizaci k Odstranění Blobu (REST API) a Zrušení Odstranění Blobu (REST API).
Odstranit blob
Poznámka:
Pokud je pro účet úložiště povolené měkké odstranění objektů blob, nemůžete provést trvalé odstranění pomocí metod klientské knihovny. Pomocí metod v tomto článku zůstane měkce smazaný objekt blob, verze objektu blob nebo snímek k dispozici, dokud nevyprší doba uchovávání, kdy se trvale odstraní. Další informace o základní operaci rozhraní REST API najdete v tématu Odstranění objektu blob (REST API).
Pokud chcete odstranit objekt blob, zavolejte následující metodu:
Následující příklad odstraní blob:
func deleteBlob(client *azblob.Client, containerName string, blobName string) {
// Delete the blob
_, err := client.DeleteBlob(context.TODO(), containerName, blobName, nil)
handleError(err)
}
Pokud objekt blob obsahuje nějaké přidružené snímky, musíte odstranit všechny jeho snímky, abyste objekt blob odstranili. Následující příklad odstraní objekt blob a jeho snímky:
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)
}
Pokud chcete odstranit pouze snímky, a ne samotný objekt blob, můžete předat hodnotu DeleteSnapshotsOptionTypeOnly parametru DeleteSnapshots .
Obnovte odstraněný objekt blob
Obnovitelné odstranění objektu blob chrání jednotlivý blob a jeho verze, snímky a metadata před náhodným odstraněním nebo přepsáním tak, že odstraněná data se po určitou dobu uchovají v systému. Během doby uchovávání můžete blob obnovit do stavu v době jeho odstranění. Po vypršení doby uchovávání je objekt blob trvale odstraněn. Další informace o obnovitelném odstranění objektů blob najdete v tématu Obnovitelné odstranění objektů blob.
K obnovení měkce odstraněného objektu blob nebo snímku můžete použít klientské knihovny Azure Storage.
Obnovení obnovitelně odstraněného objektu blob závisí na tom, jestli má váš účet úložiště povolenou správu verzí objektů blob. Další informace o správě verzí objektů blob najdete v tématu Správa verzí objektů blob. V závislosti na vašem scénáři si projděte jednu z následujících částí:
Obnovení měkce odstraněných objektů, když je verzování zakázáno
Pokud chcete obnovit odstraněné objekty blob při zakázání správy verzí, zavolejte následující metodu:
Tato metoda obnoví obsah a metadata softwarově odstraněného objektu blob a všechny přidružené softwarově odstraněné snímky. Volání této metody pro blob, který nebyl odstraněn, nemá vliv.
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)
}
Obnovení měkce odstraněných objektů při povolení verzování
Pokud je účet úložiště nakonfigurovaný tak, aby umožňoval správu verzí objektů blob, odstranění objektu blob způsobí, že aktuální verze objektu blob se stane předchozí verzí. Pokud chcete obnovit měkce smazaný objekt blob při povolené správě verzí, zkopírujte předchozí verzi nad základní objekt blob. Můžete použít následující metodu:
Následující příklad kódu identifikuje verzi odstraněného objektu blob a obnoví ji zkopírováním do základního objektu 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)
}
Poznámka:
Ukázky kódu v této příručce vám pomůžou začít se službou Azure Blob Storage a Go. Měli byste upravit zpracování chyb a Context hodnoty tak, aby vyhovovaly potřebám vaší aplikace.
Zdroje informací
Další informace o tom, jak odstranit objekty blob a obnovit odstraněné objekty blob pomocí klientského modulu služby Azure Blob Storage pro Go, najdete v následujících zdrojích informací.
Ukázky kódu
- Zobrazení ukázek kódu z tohoto článku (GitHub)
Operace rozhraní REST API
Sada Azure SDK for Go obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat Go. Metody klientské knihovny pro odstranění objektů blob a obnovení odstraněných objektů blob používají následující operace rozhraní REST API:
- Odstranění objektu blob (REST API)
- Zrušení odstranění objektu blob (REST API)
Prostředky klientského modulu
Viz také
Související obsah
- Tento článek je součástí příručky pro vývojáře služby Blob Storage pro Go. Další informace najdete v úplném seznamu článků příručky pro vývojáře na webu Sestavení aplikace Go.