Megosztás a következőn keresztül:


Blobtároló törlése és visszaállítása a Go használatával

Ez a cikk bemutatja, hogyan törölhet tárolókat a Go-hoz készült Azure Storage-ügyfélmodullal. Ha engedélyezte a tárolók helyreállítható törlését, visszaállíthatja a törölt tárolókat.

Előfeltételek

Saját környezet beállítása

Ha nem rendelkezik meglévő projekttel, ez a szakasz bemutatja, hogyan állíthat be egy projektet a Go Azure Blob Storage-ügyfélmoduljának használatára. A lépések közé tartozik a modul telepítése, az elérési utak hozzáadása import és egy engedélyezett ügyfélobjektum létrehozása. További részletekért tekintse meg az Azure Blob Storage és a Go használatának első lépéseit.

Modulok telepítése

Telepítse az azblob modult a következő paranccsal:

go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob

A Microsoft Entra-azonosítóval való hitelesítéshez (ajánlott) telepítse a azidentity modult a következő paranccsal:

go get github.com/Azure/azure-sdk-for-go/sdk/azidentity

Importálási útvonalak hozzáadása

A kódfájlban adja hozzá a következő importálási útvonalakat:

import (
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)

Ezek az importálási útvonalak az első lépésekhez szükséges minimumot jelölik. A cikkben szereplő néhány példakód további importálási útvonalakat igényelhet. További részletekért és példahasználatért tekintse meg a kódmintákat.

Ügyfélobjektum létrehozása

Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozzon létre egy ügyfélobjektumot az azblob használatával . NewClient. Az alábbi példa bemutatja, hogyan hozhat létre ügyfélobjektumot DefaultAzureCredential engedélyezés céljából:

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
}

Engedélyezés

Az engedélyezési mechanizmusnak rendelkeznie kell a tároló törléséhez vagy visszaállításához szükséges engedélyekkel. A Microsoft Entra-azonosítóval való engedélyezéshez (ajánlott) az Azure RBAC beépített szerepkörű Storage Blob Data Közreműködő vagy újabb szerepkörre van szüksége. További információkért tekintse meg a Tároló törlése (REST API) és a Rest API (Rest API) helyreállítására vonatkozó engedélyezési útmutatót.

Tároló törlése

Tároló törléséhez hívja meg a következő metódust:

A tároló törlése után legalább 30 másodpercig nem hozhat létre azonos nevű tárolót. Az azonos nevű tároló létrehozása HTTP-hibakóddal 409 (Conflict)meghiúsul. A tárolón vagy a benne lévő blobokon található egyéb műveletek HTTP-hibakóddal 404 (Not Found)meghiúsulnak.

Az alábbi példa egy megadott tároló törlését mutatja be:

func deleteContainer(client *azblob.Client, containerName string) {
    // Delete the container
    _, err := client.DeleteContainer(context.TODO(), containerName, nil)
    handleError(err)
}

Törölt tároló visszaállítása

Ha a tároló helyreállítható törlése engedélyezve van egy tárfiókhoz, a törölt tároló és tartalma egy megadott megőrzési időn belül helyreállítható. A tárolók helyreállítható törléséről további információt a tárolók helyreállítható törlésének engedélyezése és kezelése című témakörben talál. Helyreállíthatóan törölt tárolót az alábbi metódus meghívásával állíthat vissza az ügyfélobjektum beágyazott ServiceClient eszközéről:

Az alábbi példa a tárolókat sorolja fel, beleértve a helyreállíthatóan törölt tárolókat is, és iterálja a listát a megadott helyreállíthatóan törölt tároló visszaállításához:

func restoreDeletedContainer(client *azblob.Client, containerName string) {
    // List containers, included deleted ones
    pager := client.NewListContainersPager(&azblob.ListContainersOptions{
        Include: azblob.ListContainersInclude{Deleted: true},
    })

    for pager.More() {
        resp, err := pager.NextPage(context.TODO())
        handleError(err)

        for _, container := range resp.ContainerItems {
            if *container.Name == containerName && *container.Deleted {
                // Restore the deleted container
                _, err := client.ServiceClient().RestoreContainer(context.TODO(), containerName, *container.Version, nil)
                handleError(err)
            }
        }
    }
}

Feljegyzés

Az útmutatóban szereplő kódminták az Azure Blob Storage és a Go használatának megkezdéséhez nyújtanak segítséget. Az alkalmazás igényeinek megfelelően módosítania kell a hibakezelést és Context az értékeket.

Források

A tárolók Go-hoz készült Azure Blob Storage-ügyfélmodullal történő törlésével kapcsolatos további információkért tekintse meg az alábbi erőforrásokat.

Kódminták

REST API-műveletek

Az Azure SDK for Go olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismert Go-paradigmákon keresztül. A tároló törlésére vagy visszaállítására szolgáló ügyfélkódtár-metódusok a következő REST API-műveleteket használják:

Ügyfélmodul erőforrásai

Lásd még