Tworzenie kontenera obiektów blob za pomocą języka Go
W tym artykule pokazano, jak tworzyć kontenery za pomocą modułu klienta usługi Azure Storage dla języka Go. Obiekty blob w usłudze Azure Storage są zorganizowane w kontenery. Przed przekazaniem obiektu blob należy najpierw utworzyć kontener.
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 utworzenia kontenera. 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 tworzenia kontenera (interfejs API REST).
Informacje o nazewnictwie kontenerów
Nazwa kontenera musi być prawidłową nazwą DNS, ponieważ stanowi część unikatowego identyfikatora URI używanego do adresowania kontenera lub jego obiektów blob. Postępuj zgodnie z tymi regułami podczas nazewnictwa kontenera:
- Nazwy kontenerów mogą mieć długość od 3 do 63 znaków.
- Nazwy kontenerów muszą zaczynać się literą lub cyfrą i mogą zawierać tylko małe litery, cyfry i znak kreski (-).
- Kolejne znaki kreski nie są dozwolone w nazwach kontenerów.
Identyfikator URI zasobu kontenera jest sformatowany w następujący sposób:
https://my-account-name.blob.core.windows.net/my-container-name
Tworzenie kontenera
Aby utworzyć kontener, wywołaj następującą metodę:
Kontenery są tworzone bezpośrednio pod kontem magazynu. Nie można zagnieżdżać jednego kontenera pod drugim. Wyjątek jest zgłaszany, jeśli kontener o tej samej nazwie już istnieje.
W poniższym przykładzie pokazano, jak utworzyć kontener:
func createContainer(client *azblob.Client, containerName string) {
// Create a container
_, err := client.CreateContainer(context.TODO(), containerName, nil)
handleError(err)
}
Tworzenie kontenera głównego
Kontener główny służy jako domyślny kontener dla konta magazynu. Każde konto magazynu może mieć jeden kontener główny, który musi mieć nazwę $root. Kontener główny musi zostać jawnie utworzony lub usunięty.
Można odwoływać się do obiektu blob przechowywanego w kontenerze głównym bez uwzględniania nazwy głównego kontenera. Kontener główny umożliwia odwołowanie się do obiektu blob na najwyższym poziomie hierarchii konta magazynu. Można na przykład odwołać się do obiektu blob w kontenerze głównym w następujący sposób:
https://<storage-account-name>.blob.core.windows.net/default.html
Poniższy przykład tworzy kontener, jeśli jeszcze nie istnieje na koncie magazynu:
func createRootContainer(client *azblob.Client) {
// Create root container
_, err := client.CreateContainer(context.TODO(), "$root", nil)
handleError(err)
}
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 tworzenia kontenera 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 tworzenia kontenera używają następującej operacji interfejsu API REST:
- Tworzenie kontenera (interfejs API REST)
Zasoby modułu klienta
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.