Aracılığıyla paylaş


Go ile blob kapsayıcısı oluşturma

Bu makalede Go için Azure Depolama istemci modülüyle kapsayıcı oluşturma adımları gösterilmektedir. Azure Depolama'daki bloblar kapsayıcılar halinde düzenlenir. Blobu karşıya yükleyebilmeniz için önce bir kapsayıcı oluşturmanız gerekir.

Önkoşullar

Ortamınızı ayarlama

Mevcut bir projeniz yoksa, bu bölümde Go için Azure Blob Depolama istemci modülüyle çalışmak üzere bir projenin nasıl ayarlanacağı gösterilir. Adımlar arasında modül yüklemesi, yol ekleme import ve yetkili istemci nesnesi oluşturma yer alır. Ayrıntılar için bkz. Azure Blob Depolama kullanmaya başlama ve Git.

Modülleri yükleme

Aşağıdaki komutu kullanarak azblob modülünü yükleyin:

go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob

Microsoft Entra Id ile kimlik doğrulaması yapmak için (önerilen), aşağıdaki komutu kullanarak modülü yükleyin azidentity :

go get github.com/Azure/azure-sdk-for-go/sdk/azidentity

İçeri aktarma yolları ekleme

Kod dosyanıza aşağıdaki içeri aktarma yollarını ekleyin:

import (
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)

Bu makaledeki bazı kod örnekleri için ek içeri aktarma yolları gerekebilir. Belirli ayrıntılar ve örnek kullanım için bkz . Kod örnekleri.

İstemci nesnesi oluşturma

Bir uygulamayı Blob Depolama'ya bağlamak için azblob kullanarak bir istemci nesnesi oluşturun. NewClient. Aşağıdaki örnekte yetkilendirme için kullanarak DefaultAzureCredential bir istemci nesnesinin nasıl oluşturulacağı gösterilmektedir:

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
}

Yetkilendirme

Yetkilendirme mekanizması, kapsayıcı oluşturmak için gerekli izinlere sahip olmalıdır. Microsoft Entra Id ile yetkilendirme için (önerilir), Azure RBAC yerleşik rolü Depolama Blob Verileri Katkıda Bulunanı veya üzeri gerekir. Daha fazla bilgi edinmek için Kapsayıcı Oluşturma (REST API) yetkilendirme kılavuzuna bakın.

Kapsayıcı adlandırma hakkında

Kapsayıcı adı, kapsayıcıyı veya bloblarını ele almak için kullanılan benzersiz URI'nin bir parçasını oluşturacağı için geçerli bir DNS adı olmalıdır. Kapsayıcıyı adlandırırken şu kuralları izleyin:

  • Kapsayıcı adları 3 ila 63 karakter uzunluğunda olabilir.
  • Kapsayıcı adları bir harf veya sayı ile başlamalıdır ve yalnızca küçük harf, sayı ve tire (-) karakteri içerebilir.
  • Kapsayıcı adlarında ardışık tire karakterlerine izin verilmez.

Kapsayıcı kaynağının URI'si aşağıdaki gibi biçimlendirilir:

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

Kapsayıcı oluşturma

Kapsayıcı oluşturmak için aşağıdaki yöntemi çağırın:

Kapsayıcılar depolama hesabının hemen altında oluşturulur. Bir kapsayıcıyı başka bir kapsayıcının altına iç içe yerleştirmek mümkün değildir. Aynı ada sahip bir kapsayıcı zaten varsa bir özel durum oluşturulur.

Aşağıdaki örnekte kapsayıcı oluşturma gösterilmektedir:

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

Kök kapsayıcıyı oluşturma

Kök kapsayıcı, depolama hesabınız için varsayılan kapsayıcı görevi görür. Her depolama hesabının $root olarak adlandırılması gereken bir kök kapsayıcısı olabilir. Kök kapsayıcı açıkça oluşturulmalıdır veya silinmelidir.

Kök kapsayıcı adını eklemeden kök kapsayıcıda depolanan bir bloba başvurabilirsiniz. Kök kapsayıcı, depolama hesabı hiyerarşisinin en üst düzeyinde bir bloba başvurmanızı sağlar. Örneğin, kök kapsayıcıdaki bir bloba aşağıdaki gibi başvurabilirsiniz:

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

Aşağıdaki örnek, depolama hesabında zaten yoksa kapsayıcıyı oluşturur:

func createRootContainer(client *azblob.Client) {
    // Create root container
    _, err := client.CreateContainer(context.TODO(), "$root", nil)
    handleError(err)
}

Not

Bu kılavuzdaki kod örnekleri, Azure Blob Depolama ve Go ile çalışmaya başlamanıza yardımcı olmak için tasarlanmıştır. Hata işlemeyi ve Context değerleri uygulamanızın gereksinimlerini karşılayacak şekilde değiştirmeniz gerekir.

Kaynaklar

Go için Azure Blob Depolama istemci modülünü kullanarak kapsayıcı oluşturma hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.

Kod örnekleri

REST API işlemleri

Go için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık Go paradigmalarıyla REST API işlemleriyle etkileşim kurmanızı sağlar. Kapsayıcı oluşturmaya yönelik istemci kitaplığı yöntemleri aşağıdaki REST API işlemini kullanır:

İstemci modülü kaynakları