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
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Azure depolama hesabı - depolama hesabı oluşturma
- Go 1.18+
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 içeri aktarma yolları, başlamak için gereken en düşük değeri temsil eder. 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
- Bu makaledeki kod örneklerini görüntüleyin (GitHub)
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:
- Kapsayıcı Oluşturma (REST API)
İstemci modülü kaynakları
İlgili içerik
- Bu makale, Go için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için Go uygulamanızı derleme makalelerinde geliştirici kılavuzu makalelerinin tam listesine bakın.