Delen via


Een blobcontainer verwijderen en herstellen met Go

In dit artikel wordt beschreven hoe u containers verwijdert met de Azure Storage-clientmodule voor Go. Als u voorlopig verwijderen van containers hebt ingeschakeld, kunt u verwijderde containers herstellen.

Vereisten

Uw omgeving instellen

Als u geen bestaand project hebt, ziet u in deze sectie hoe u een project instelt voor gebruik met de Azure Blob Storage-clientmodule voor Go. De stappen omvatten module-installatie, het toevoegen van import paden en het maken van een geautoriseerd clientobject. Zie Aan de slag met Azure Blob Storage en Go voor meer informatie.

Modules installeren

Installeer de azblob-module met behulp van de volgende opdracht:

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

Als u wilt verifiëren met Microsoft Entra ID (aanbevolen), installeert u de azidentity module met behulp van de volgende opdracht:

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

Importpaden toevoegen

Voeg in uw codebestand de volgende importpaden toe:

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

Deze importpaden vertegenwoordigen het minimum dat nodig is om aan de slag te gaan. Voor sommige codevoorbeelden in dit artikel zijn mogelijk extra importpaden vereist. Zie Codevoorbeelden voor specifieke details en voorbeeldgebruik.

Een clientobject maken

Als u een app wilt verbinden met Blob Storage, maakt u een clientobject met behulp van azblob. NewClient. In het volgende voorbeeld ziet u hoe u een clientobject maakt met behulp van DefaultAzureCredential autorisatie:

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
}

Autorisatie

Het autorisatiemechanisme moet over de benodigde machtigingen beschikken om een container te verwijderen of te herstellen. Voor autorisatie met Microsoft Entra ID (aanbevolen) hebt u ingebouwde Azure RBAC-rol Opslagblobgegevensbijdrager of hoger nodig. Zie de autorisatierichtlijnen voor Delete Container (REST API) en Restore Container (REST API) voor meer informatie.

Een container verwijderen

Als u een container wilt verwijderen, roept u de volgende methode aan:

Nadat u een container hebt verwijderd, kunt u gedurende ten minste 30 seconden geen container met dezelfde naam maken. Het maken van een container met dezelfde naam mislukt met HTTP-foutcode 409 (Conflict). Alle andere bewerkingen in de container of de blobs die deze bevat, mislukken met HTTP-foutcode 404 (Not Found).

In het volgende voorbeeld ziet u hoe u een opgegeven container verwijdert:

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

Een verwijderde container herstellen

Wanneer voorlopig verwijderen van containers is ingeschakeld voor een opslagaccount, kunnen een verwijderde container en de inhoud ervan worden hersteld binnen een opgegeven bewaarperiode. Zie Voorlopig verwijderen voor containers inschakelen en beheren voor meer informatie over voorlopig verwijderen van containers. U kunt een voorlopig verwijderde container herstellen door de volgende methode aan te roepen vanuit de ingesloten ServiceClient voor het clientobject:

In het volgende voorbeeld ziet u containers, inclusief voorlopig verwijderde containers, en wordt de lijst herhaald om de opgegeven voorlopig verwijderde container te herstellen:

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)
            }
        }
    }
}

Notitie

De codevoorbeelden in deze handleiding zijn bedoeld om u te helpen aan de slag te gaan met Azure Blob Storage en Go. U moet foutafhandeling en Context -waarden wijzigen om te voldoen aan de behoeften van uw toepassing.

Resources

Zie de volgende resources voor meer informatie over het verwijderen van een container met behulp van de Azure Blob Storage-clientmodule voor Go.

Codevoorbeelden

  • Codevoorbeelden uit dit artikel weergeven (GitHub)

REST API-bewerkingen

De Azure SDK voor Go bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende Go-paradigma's. De clientbibliotheekmethoden voor het verwijderen of herstellen van een container maken gebruik van de volgende REST API-bewerkingen:

Resources voor clientmodules

Zie ook

  • Dit artikel maakt deel uit van de ontwikkelaarshandleiding voor Blob Storage voor Go. Zie de volledige lijst met artikelen over ontwikkelaarshandleidingen in Build your Go app voor meer informatie.