Wyświetlanie listy kontenerów obiektów blob za pomocą języka Go
Po wyświetleniu listy kontenerów na koncie usługi Azure Storage z poziomu kodu można określić kilka opcji zarządzania sposobem zwracania wyników z usługi Azure Storage. W tym artykule pokazano, jak wyświetlić listę kontenerów przy użyciu modułu klienta usługi Azure Storage dla języka Go.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz jedną bezpłatnie
- Konto usługi Azure Storage — tworzenie konta magazynu
- Przejdź do wersji 1.18 lub nowszej
Konfigurowanie środowiska
Jeśli nie masz istniejącego projektu, w tej sekcji pokazano, jak skonfigurować projekt do pracy z modułem klienta usługi Azure Blob Storage dla języka Go. Kroki obejmują instalację modułu, dodawanie import
ścieżek i tworzenie autoryzowanego obiektu klienta. Aby uzyskać szczegółowe informacje, zobacz Wprowadzenie do usługi Azure Blob Storage i Go.
Instalowanie modułów
Zainstaluj moduł azblob przy użyciu następującego polecenia:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Aby uwierzytelnić się przy użyciu identyfikatora Entra firmy Microsoft (zalecane), zainstaluj azidentity
moduł przy użyciu następującego polecenia:
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Dodawanie ścieżek importu
W pliku kodu dodaj następujące ścieżki importu:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Te ścieżki importu reprezentują minimum wymagane do rozpoczęcia pracy. Niektóre przykłady kodu w tym artykule mogą wymagać dodatkowych ścieżek importu. Aby uzyskać szczegółowe informacje i przykładowe użycie, zobacz Przykłady kodu.
Tworzenie obiektu klienta
Aby połączyć aplikację z usługą Blob Storage, utwórz obiekt klienta przy użyciu polecenia azblob. NewClient. W poniższym przykładzie pokazano, jak utworzyć obiekt klienta przy użyciu DefaultAzureCredential
autoryzacji:
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
}
Autoryzacja
Mechanizm autoryzacji musi mieć niezbędne uprawnienia do wyświetlania listy kontenerów obiektów blob. Aby uzyskać autoryzację przy użyciu identyfikatora Entra firmy Microsoft (zalecane), potrzebujesz wbudowanej kontroli dostępu opartej na rolach platformy Azure współautora danych obiektów blob usługi Storage lub nowszego. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dla kontenerów list (interfejs API REST).
Informacje o opcjach listy kontenerów
Podczas wyświetlania listy kontenerów z kodu można określić opcje zarządzania sposobem zwracania wyników z usługi Azure Storage. Możesz określić liczbę wyników, które mają być zwracane w każdym zestawie wyników, a następnie pobrać kolejne zestawy. Wyniki można również filtrować według prefiksu i zwracać metadane kontenera za pomocą wyników. Te opcje opisano w poniższych sekcjach.
Aby wyświetlić listę kontenerów na koncie magazynu, wywołaj następującą metodę:
Ta metoda zwraca element Pager, który umożliwia aplikacji przetwarzanie jednej strony wyników naraz. Kontenery są uporządkowane leksykograficznie według nazwy.
Opcje wyświetlania listy kontenerów można określić za pomocą struktury ListContainersOptions . Ta struktura zawiera pola do zarządzania liczbą wyników, filtrowaniem według prefiksu i dołączaniem informacji o kontenerze przy użyciu elementu ListContainersInclude.
Zarządzanie liczbą zwracanych wyników
Domyślnie operacja wyświetlania listy zwraca maksymalnie 5000 wyników jednocześnie. Aby zwrócić mniejszy zestaw wyników, podaj wartość niezerową dla MaxResults
pola w strukturę ListContainersOptions .
Filtrowanie wyników za pomocą prefiksu
Aby filtrować listę kontenerów, określ ciąg lub znak dla Prefix
pola w polach ListContainersOptions. Ciąg prefiksu może zawierać co najmniej jeden znak. Usługa Azure Storage zwraca następnie tylko kontenery, których nazwy zaczynają się od tego prefiksu.
Dołączanie metadanych kontenera
Aby uwzględnić metadane kontenera z wynikami, ustaw Metadata
pole na true
jako część listContainersInclude. Usługa Azure Storage zawiera metadane z każdym zwróconym kontenerem, więc nie trzeba pobierać metadanych kontenera oddzielnie.
Dołączanie usuniętych kontenerów
Aby uwzględnić kontenery usunięte nietrwale z wynikami, ustaw Deleted
pole na jako true
część listyContainersInclude.
Przykłady kodu
W poniższym przykładzie wymieniono wszystkie kontenery i metadane:
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)
}
}
}
}
W poniższym przykładzie wymieniono tylko kontenery rozpoczynające się od określonego prefiksu:
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)
}
}
}
Można również określić limit liczby wyników na stronę. W tym przykładzie jest przekazywana wartość parametru MaxResults
i stronicowanie wyników:
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)
}
}
}
Uwaga
Przykłady kodu w tym przewodniku ułatwiają rozpoczęcie pracy z usługami Azure Blob Storage i Go. Należy zmodyfikować obsługę błędów i Context
wartości, aby spełniały potrzeby aplikacji.
Zasoby
Aby dowiedzieć się więcej na temat wyświetlania listy kontenerów przy użyciu modułu klienta usługi Azure Blob Storage dla języka Go, zobacz następujące zasoby.
Przykłady kodu
- Wyświetlanie przykładów kodu z tego artykułu (GitHub)
Operacje interfejsu API REST
Zestaw Azure SDK dla języka Go zawiera biblioteki oparte na interfejsie API REST platformy Azure, które umożliwiają interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów języka Go. Metody biblioteki klienta do wyświetlania listy kontenerów używają następującej operacji interfejsu API REST:
- Wyświetlanie listy kontenerów (interfejs API REST)
Zasoby modułu klienta
Zobacz też
Powiązana zawartość
- Ten artykuł jest częścią przewodnika dla deweloperów usługi Blob Storage dla języka Go. Aby dowiedzieć się więcej, zobacz pełną listę artykułów z przewodnika dla deweloperów na stronie Tworzenie aplikacji języka Go.