Delen via


Een blobcontainer maken met Go

In dit artikel wordt beschreven hoe u containers maakt met de Azure Storage-clientmodule voor Go. Blobs in Azure Storage worden georganiseerd in containers. Voordat u een blob kunt uploaden, moet u eerst een container maken.

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

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

Over naamgeving van containers

Een containernaam moet een geldige DNS-naam zijn, omdat deze deel uitmaakt van de unieke URI die wordt gebruikt om de container of de bijbehorende blobs te adresseren. Volg deze regels bij het benoemen van een container:

  • Containernamen kunnen tussen 3 en 63 tekens lang zijn.
  • Containernamen moeten beginnen met een letter of cijfer en mogen alleen kleine letters, cijfers en het streepje (-) bevatten.
  • Opeenvolgende streepjes zijn niet toegestaan in containernamen.

De URI voor een containerresource is als volgt ingedeeld:

https://my-account-name.blob.core.windows.net/my-container-name

Een container maken

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

Containers worden direct onder het opslagaccount gemaakt. Het is niet mogelijk om één container onder een andere container te nesten. Er wordt een uitzondering gegenereerd als er al een container met dezelfde naam bestaat.

In het volgende voorbeeld ziet u hoe u een container maakt:

func createContainer(client *azblob.Client, containerName string) {
    // Create a container
    _, err := client.CreateContainer(context.TODO(), containerName, nil)
    handleError(err)
}

De hoofdcontainer maken

Een hoofdcontainer fungeert als een standaardcontainer voor uw opslagaccount. Elk opslagaccount kan één hoofdcontainer hebben, die de naam $root moet hebben. De hoofdcontainer moet expliciet worden gemaakt of verwijderd.

U kunt verwijzen naar een blob die is opgeslagen in de hoofdcontainer zonder de naam van de hoofdcontainer op te slaan. Met de hoofdcontainer kunt u verwijzen naar een blob op het hoogste niveau van de opslagaccounthiërarchie. U kunt bijvoorbeeld als volgt verwijzen naar een blob in de hoofdcontainer:

https://<storage-account-name>.blob.core.windows.net/default.html

In het volgende voorbeeld wordt de container gemaakt als deze nog niet bestaat in het opslagaccount:

func createRootContainer(client *azblob.Client) {
    // Create root container
    _, err := client.CreateContainer(context.TODO(), "$root", 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 maken 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 maken van een container gebruiken de volgende REST API-bewerking:

  • Container maken (REST API)

Resources voor clientmodules