.NET ile blob kapsayıcısı oluşturma

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. Bu makalede.NET için Azure Depolama istemci kitaplığı ile kapsayıcıların nasıl oluşturulacağı gösterilmektedir.

Önkoşullar

  • Bu makalede, .NET için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere ayarlanmış bir projeniz olduğu varsayılır. Paket yükleme, yönerge ekleme using ve yetkili istemci nesnesi oluşturma gibi projenizi ayarlama hakkında bilgi edinmek için bkz. Azure Blob Depolama ve .NET ile çalışmaya başlama.
  • Yetkilendirme mekanizmasının blob kapsayıcısı oluşturma izinleri olmalıdır. Daha fazla bilgi edinmek için aşağıdaki REST API işlemi için 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şturduğundan geçerli bir DNS adı olmalıdır. Kapsayıcıyı adlandırırken şu kuralları izleyin:

  • Kapsayıcı adları 3 ile 63 karakter uzunluğunda olabilir.
  • Kapsayıcı adları bir harf veya sayı ile başlamalıdır ve yalnızca küçük harfler, sayılar 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 sınıfından aşağıdaki yöntemlerden birini çağırın BlobServiceClient :

Sınıfından aşağıdaki yöntemlerden BlobContainerClient birini kullanarak da kapsayıcı oluşturabilirsiniz:

Aynı ada sahip bir kapsayıcı zaten varsa, bu yöntemler bir özel durum oluşturur.

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 yerleştirmek mümkün değildir.

Aşağıdaki örnek, zaman uyumsuz olarak kapsayıcı oluşturmak için bir nesne kullanır BlobServiceClient :

//-------------------------------------------------
// Create a container
//-------------------------------------------------
private static async Task<BlobContainerClient> CreateSampleContainerAsync(BlobServiceClient blobServiceClient)
{
    // Name the sample container based on new GUID to ensure uniqueness.
    // The container name must be lowercase.
    string containerName = "container-" + Guid.NewGuid();

    try
    {
        // Create the container
        BlobContainerClient container = await blobServiceClient.CreateBlobContainerAsync(containerName);

        if (await container.ExistsAsync())
        {
            Console.WriteLine("Created container {0}", container.Name);
            return container;
        }
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine("HTTP error code {0}: {1}",
                            e.Status, e.ErrorCode);
        Console.WriteLine(e.Message);
    }

    return null;
}

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 bir kök kapsayıcısı olabilir ve bu kapsayıcı $root olarak adlandırılmalıdır. 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 şekilde başvurabilirsiniz:

https://myaccount.blob.core.windows.net/default.html

Aşağıdaki örnek, kök kapsayıcıyı zaman uyumlu olarak oluşturur:

//-------------------------------------------------
// Create root container
//-------------------------------------------------
private static void CreateRootContainer(BlobServiceClient blobServiceClient)
{
    try
    {
        // Create the root container or handle the exception if it already exists
        BlobContainerClient container =  blobServiceClient.CreateBlobContainer("$root");

        if (container.Exists())
        {
            Console.WriteLine("Created root container.");
        }
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine("HTTP error code {0}: {1}",
                            e.Status, e.ErrorCode);
        Console.WriteLine(e.Message);
    }
}

Kaynaklar

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

REST API işlemleri

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

İstemci kitaplığı kaynakları