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
- Azure-abonnement: u kunt een gratis abonnement nemen
- Azure Storage-account: maak een opslagaccount
- Go 1.18+
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
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:
- Containers (REST API) vermelden
Resources voor clientmodules
Zie ook
Gerelateerde inhoud
- 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.