Delen via


Blobcontainers vermelden met Go

Wanneer u de containers in een Azure Storage-account uit uw code weergeeft, kunt u verschillende opties opgeven om te beheren hoe resultaten worden geretourneerd vanuit Azure Storage. In dit artikel wordt beschreven hoe u containers weergeeft met behulp van de Azure Storage-clientmodule voor Go.

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 blobcontainers weer te geven. Voor autorisatie met Microsoft Entra ID (aanbevolen) hebt u ingebouwde Azure RBAC-rol Opslagblobgegevensbijdrager of hoger nodig. Zie de autorisatierichtlijnen voor List Containers (REST API) voor meer informatie.

Over opties voor containervermelding

Wanneer u containers uit uw code opgeeft, kunt u opties opgeven om te beheren hoe resultaten worden geretourneerd vanuit Azure Storage. U kunt het aantal resultaten opgeven dat moet worden geretourneerd in elke set resultaten en vervolgens de volgende sets ophalen. U kunt de resultaten ook filteren op een voorvoegsel en containermetagegevens retourneren met de resultaten. Deze opties worden beschreven in de volgende secties.

Als u containers in een opslagaccount wilt weergeven, roept u de volgende methode aan:

Deze methode retourneert een Pager, waarmee uw app één pagina met resultaten tegelijk kan verwerken. Containers worden lexicografisch gesorteerd op naam.

U kunt opties opgeven voor het weergeven van containers met behulp van de struct ListContainersOptions . Deze struct bevat velden voor het beheren van het aantal resultaten, filteren op voorvoegsel en het opnemen van containergegevens met behulp van ListContainersInclude.

Beheren hoeveel resultaten worden geretourneerd

Standaard retourneert een vermeldingsbewerking maximaal 5000 resultaten tegelijk. Als u een kleinere set resultaten wilt retourneren, geeft u een niet-nulwaarde op voor het MaxResults veld in de struct ListContainersOptions .

Resultaten filteren met een voorvoegsel

Als u de lijst met containers wilt filteren, geeft u een tekenreeks of teken op voor het Prefix veld in ListContainersOptions. De tekenreeks voor het voorvoegsel kan een of meer tekens bevatten. Azure Storage retourneert vervolgens alleen de containers waarvan de namen beginnen met dat voorvoegsel.

Containermetagegevens opnemen

Als u containermetagegevens met de resultaten wilt opnemen, stelt u het Metadata veld true in op als onderdeel van ListContainersInclude. Azure Storage bevat metagegevens voor elke container die wordt geretourneerd, zodat u de containermetagegevens niet afzonderlijk hoeft op te halen.

Verwijderde containers opnemen

Als u voorlopig verwijderde containers wilt opnemen met de resultaten, stelt u het Deleted veld true in op als onderdeel van ListContainersInclude.

Codevoorbeelden

In het volgende voorbeeld worden alle containers en metagegevens weergegeven:

func listContainers(client *azblob.Client) {
    // List the containers in the storage account and include metadata
    pager := client.NewListContainersPager(&azblob.ListContainersOptions{
        Include: azblob.ListContainersInclude{Metadata: true},
    })

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

        for _, container := range resp.ContainerItems {
            fmt.Println(*container.Name)
            for k, v := range container.Metadata {
                fmt.Printf("%v: %v\n", k, *v)
            }
        }
    }
}

In het volgende voorbeeld ziet u alleen containers die beginnen met het opgegeven voorvoegsel:

func listContainersWithPrefix(client *azblob.Client, prefix string) {
    // List the containers in the storage account with a prefix
    pager := client.NewListContainersPager(&azblob.ListContainersOptions{
        Prefix: &prefix,
    })

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

        for _, container := range resp.ContainerItems {
            fmt.Println(*container.Name)
        }
    }
}

U kunt ook een limiet opgeven voor het aantal resultaten per pagina. In dit voorbeeld wordt een waarde voor MaxResults de resultaten doorgegeven en gepagineerd:

func listContainersWithMaxResults(client *azblob.Client, maxResults int32) {
    // List the containers in the storage account with a maximum number of results
    pager := client.NewListContainersPager(&azblob.ListContainersOptions{
        MaxResults: &maxResults,
    })

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

        // Show page number to demonstrate pagination with max results
        i++
        fmt.Printf("Page %d:\n", i)

        for _, container := range resp.ContainerItems {
            fmt.Println(*container.Name)
        }
    }
}

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 weergeven van containers 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 weergeven van containers gebruiken de volgende REST API-bewerking:

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.