Blok Koy

İşlem, Put Block blobun parçası olarak işlenecek yeni bir blok oluşturur.

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Put Block . HTTPS kullanmanızı öneririz. myaccount değerini depolama hesabınızın adıyla değiştirin:

PUT yöntemi istek URI'si HTTP sürümü
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Öykünülmüş depolama hizmeti isteği

Öykünülen depolama hizmetine karşı istekte bulunulduğunda öykünücü konak adını ve Blob hizmeti bağlantı noktasını olarak 127.0.0.1:10000ve ardından öykünülen depolama hesabı adını belirtin:

PUT yöntemi istek URI'si HTTP sürümü
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Daha fazla bilgi için bkz . Yerel Azure Depolama geliştirmesi için Azurite öykünücüsü kullanma.

URI parametreleri

Parametre Açıklama
blockid Gereklidir. Bloğu tanımlayan geçerli bir Base64 dize değeri. Kodlanmasından önce dizenin boyutu 64 bayttan küçük veya buna eşit olmalıdır.

Belirtilen blob için parametre değerinin uzunluğu her blok için blockid aynı boyutta olmalıdır.

Not: Base64 dizesi URL ile kodlanmış olmalıdır.
timeout İsteğe bağlı. timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için zaman aşımlarını ayarlama.

İstek üst bilgileri

Gerekli ve isteğe bağlı istek üst bilgileri aşağıdaki tabloda açıklanmıştır:

İstek üst bilgisi Açıklama
Authorization Gereklidir. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama isteklerini yetkilendirme .
Date veya x-ms-date Gereklidir. İstek için Eşgüdümlü Evrensel Saat (UTC) biçimini belirtir. Daha fazla bilgi için bkz. Azure Depolama isteklerini yetkilendirme.
x-ms-version Tüm yetkili istekler için gereklidir. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama Hizmetleri için sürüm oluşturma.
Content-Length Gereklidir. Blok içeriğinin bayt cinsinden uzunluğu. Blok, sürüm 2019-12-12 ve üzeri için 4.000 mebibayttan (MiB) küçük veya buna eşit olmalıdır. Eski sürümlerdeki sınırlar için Açıklamalar bölümüne bakın.

Uzunluk sağlanmazsa işlem 411 (Uzunluk Gerekli) durum koduyla başarısız olur.
Content-MD5 İsteğe bağlı. Blok içeriğinin MD5 karması. Bu karma, taşıma sırasında bloğun bütünlüğünü doğrulamak için kullanılır. Bu üst bilgi belirtildiğinde, depolama hizmeti bu üst bilgi değeriyle gelen içeriğin karmasıyla karşılaştırır.

Not: Bu MD5 karması blobla birlikte depolanmaz.

İki karma eşleşmezse, işlem 400 (Hatalı İstek) hata koduyla başarısız olur.
x-ms-content-crc64 İsteğe bağlı. Blok içeriğinin CRC64 karması. Bu karma, taşıma sırasında bloğun bütünlüğünü doğrulamak için kullanılır. Bu üst bilgi belirtildiğinde, depolama hizmeti bu üst bilgi değeriyle gelen içeriğin karmasıyla karşılaştırır.

Not: Bu CRC64 karması blob ile birlikte depolanmaz.

İki karma eşleşmezse işlem 400 (Hatalı İstek) hata koduyla başarısız olur.

Hem Content-MD5 hem de x-ms-content-crc64 üst bilgileri varsa, istek 400 (Hatalı İstek) ile başarısız olur.

Bu üst bilgi 2019-02-02 ve sonraki sürümlerde desteklenir.
x-ms-encryption-scope İsteğe bağlı. İstek içeriğini şifrelemek için kullanılacak şifreleme kapsamını gösterir. Bu üst bilgi 2019-02-02 ve sonraki sürümlerde desteklenir.
x-ms-lease-id:<ID> Blob etkin bir kiraya sahipse gereklidir. Etkin kiralaması olan bir blobda bu işlemi gerçekleştirmek için bu üst bilgi için geçerli kira kimliğini belirtin.
x-ms-client-request-id İsteğe bağlı. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibaytlık (KiB) karakter sınırıyla istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucunun aldığı istekler arasında bağıntı sağlamak için bu üst bilgiyi kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz. Azure Blob Depolama'yı izleme.

İstek üst bilgileri (müşteri tarafından sağlanan şifreleme anahtarları)

2019-02-02 sürümünden itibaren, müşteri tarafından sağlanan bir anahtarla bir blobu şifreleme isteğinde aşağıdaki üst bilgiler belirtilebilir. Müşteri tarafından sağlanan anahtarla (ve ilgili üst bilgi kümesiyle) şifreleme isteğe bağlıdır.

İstek üst bilgisi Açıklama
x-ms-encryption-key Gereklidir. Base64 kodlu AES-256 şifreleme anahtarı.
x-ms-encryption-key-sha256 Gereklidir. Şifreleme anahtarının Base64 kodlamalı SHA256 karması.
x-ms-encryption-algorithm: AES256 Gereklidir. Şifreleme için kullanılacak algoritmayı belirtir. Bu üst bilginin değeri olmalıdır AES256.

İstek gövdesi

İstek gövdesi, bloğun içeriğini içerir.

Örnek istek

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 14:37:35 GMT  
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 1048576  

Yanıt

Yanıt bir HTTP durum kodu ve yanıt üst bilgileri kümesi içerir.

Durum kodu

Başarılı bir işlem 201 (Oluşturuldu) durum kodunu döndürür.

Durum kodları hakkında bilgi için bkz. Durum ve Hata Kodları.

Yanıt üst bilgileri

Bu işlemin yanıtı aşağıdaki üst bilgileri içerir. Yanıt, ek standart HTTP üst bilgileri de içerebilir. Tüm standart üst bilgiler HTTP/1.1 protokol belirtimine uygundur.

Yanıt üst bilgisi Description
Content-MD5 İstemcinin ileti içerik bütünlüğünü denetleyebilmesi için döndürüldü. Bu üst bilginin değeri Blob Depolama tarafından hesaplanır ve istek üst bilgilerinde belirtilen değerle aynı olmayabilir. 2019-02-02 ve sonraki sürümler için, bu üst bilgi yalnızca istekte bu üst bilgi olduğunda döndürülür.
x-ms-content-crc64 İstemcinin ileti içerik bütünlüğünü denetleyebilmesi için 2019-02-02 ve sonraki sürümlerde bu üst bilgi döndürülür. Bu üst bilginin değeri Blob Depolama tarafından hesaplanır ve istek üst bilgilerinde belirtilen değerle aynı olmayabilir.

İstekte üst bilgi olmadığında Content-md5 bu üst bilgi döndürülür.
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar ve istekle ilgili sorunları gidermek için bunu kullanabilirsiniz. Daha fazla bilgi için bkz . API işlemleriyle ilgili sorunları giderme.
x-ms-version İsteği yürütmek için kullanılan Blob Depolama sürümünü gösterir. Bu üst bilgi, 2009-09-19 veya sonraki bir sürüme göre yapılan istekler için döndürülür.
Date Hizmet tarafından oluşturulan ve yanıtın ne zaman başlatıldığını gösteren UTC tarih/saat değeri.
x-ms-request-server-encrypted: true/false Sürüm 2015-12-11 ve üzeri. İsteğin içeriği belirtilen algoritma kullanılarak başarıyla şifrelenirse bu üst bilginin değeri olarak ayarlanır true . Aksi takdirde, değer olarak falseayarlanır.
x-ms-encryption-key-sha256 Sürüm 2019-02-02 ve üzeri. İstek şifreleme için müşteri tarafından sağlanan bir anahtar kullandıysa bu üst bilgi döndürülür; böylece istemci, isteğin içeriğinin sağlanan anahtar kullanılarak başarıyla şifrelenmesini sağlayabilir.
x-ms-encryption-scope Sürüm 2019-02-02 ve üzeri. İstek bir şifreleme kapsamı kullandıysa, istemcinin şifreleme kapsamı kullanılarak isteğin içeriğinin başarıyla şifrelendiğinden emin olabilmesi için bu üst bilgi döndürülür.
x-ms-client-request-id İsteklerde ve karşılık gelen yanıtlarda sorun gidermek için kullanılabilir. Bu üst bilginin değeri, istekte varsa ve değer 1.024'ten fazla görünür ASCII karakteri içermiyorsa üst bilginin değerine x-ms-client-request-id eşittir. x-ms-client-request-id Üst bilgi istekte yoksa yanıtta mevcut değildir.

Örnek yanıt

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sun, 25 Sep 2011 23:47:09 GMT  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Yetkilendirme

Azure Depolama'da herhangi bir veri erişim işlemi çağrılırken yetkilendirme gereklidir. İşlemi aşağıda açıklandığı gibi yetki Put Block verebilirsiniz.

Önemli

Microsoft, Azure Depolama'ya yönelik istekleri yetkilendirmek için Yönetilen kimliklerle Microsoft Entra Id kullanılmasını önerir. Microsoft Entra ID, Paylaşılan Anahtar yetkilendirmesine kıyasla üstün güvenlik ve kullanım kolaylığı sağlar.

Azure Depolama, blob verilerine yönelik istekleri yetkilendirmek için Microsoft Entra Id kullanılmasını destekler. Microsoft Entra Id ile Azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak bir güvenlik sorumlusuna izin vekleyebilirsiniz. Güvenlik sorumlusu bir kullanıcı, grup, uygulama hizmet sorumlusu veya Azure yönetilen kimliği olabilir. OAuth 2.0 belirtecini döndürmek için güvenlik sorumlusunun kimliği Microsoft Entra Id tarafından doğrulanır. Belirteç daha sonra Blob hizmetine karşı bir isteği yetkilendirmek için kullanılabilir.

Microsoft Entra Id kullanarak yetkilendirme hakkında daha fazla bilgi edinmek için bkz. Microsoft Entra Id kullanarak bloblara erişimi yetkilendirme.

İzinler

Aşağıda, bir Microsoft Entra kullanıcısı, grubu, yönetilen kimliği veya hizmet sorumlusunun işlemi çağırması Put Block için gereken RBAC eylemi ve bu eylemi içeren en az ayrıcalıklı yerleşik Azure RBAC rolü verilmiştir:

Azure RBAC kullanarak rol atama hakkında daha fazla bilgi edinmek için bkz. Blob verilerine erişim için Azure rolü atama.

Açıklamalar

Put Block bir blok bloba gelecekte dahil edilmesi için bir bloğu karşıya yükler. Blok blobundaki her blok farklı bir boyutta olabilir. Blok blobu en fazla 50.000 işlenen blok içerebilir.

Aşağıdaki tabloda hizmet sürümüne göre izin verilen en fazla blok ve blob boyutu açıklanmaktadır:

Hizmet sürümü En büyük blok boyutu (aracılığıyla Put Block) En büyük blob boyutu (aracılığıyla Put Block List) Tek yazma işlemiyle (aracılığıyla Put Blob) maksimum blob boyutu
Sürüm 2019-12-12 ve üzeri 4.000 MiB Yaklaşık 190,7 tebibayt (TiB) (4.000 MiB × 50.000 blok) 5.000 MiB
Sürümler 2016-05-31 - 2019-07-07 100 MiB Yaklaşık 4,75 TiB (100 MiB × 50.000 blok) 256 MiB
2016-05-31'den önceki sürümler 4 MiB Yaklaşık 195 gibibayt (GiB) (4 MiB × 50.000 blok) 64 MiB

Blobla ilişkilendirilebilen en fazla kaydedilmemiş blok sayısı 100.000'dir. Bu sayı aşılırsa hizmet 409 durum kodunu (RequestEntityTooLargeBlockCountExceedsLimit) döndürür.

Bir blok kümesini karşıya yükledikten sonra, Blok Listesine Koy işlemini çağırarak bu kümeden sunucuda blob oluşturabilir veya güncelleştirebilirsiniz. Kümedeki her blok, bu blob içinde benzersiz olan bir blok kimliğiyle tanımlanır. Blok kimliklerinin kapsamı belirli bir bloba göre belirlenmiştir, bu nedenle farklı bloblarda aynı kimliklere sahip bloklar bulunabilir.

Henüz var olmayan bir blob üzerinde çağrı Put Block yaparsanız, içerik uzunluğu 0 olan yeni bir blok blobu oluşturulur. Seçenek belirtilirse include=uncommittedblobs bu blob işlem tarafından List Blobs numaralandırılır. Karşıya yüklediğiniz blok veya bloklar, siz yeni blobu çağırana Put Block List kadar işlenmez. Bu şekilde oluşturulan bir blob sunucuda bir hafta boyunca korunur. Bu süre içinde bloba daha fazla blok veya işlenmemiş blok eklemediyseniz blob çöp olarak toplanır.

İşlemle başarıyla karşıya yüklenen bir blok, Put Block ile Put Block Listişlenene kadar bir blobun parçası olmaz. Yeni veya güncelleştirilmiş blobu işlemek için çağrılmadan önce Put Block List , Blob Al çağrısı, kaydedilmemiş bloğu eklemeden blob içeriğini döndürür.

Henüz işlenmemiş başka bir blokla aynı blok kimliğine sahip bir bloğu karşıya yüklerseniz, bu kimlikle son karşıya yüklenen blok bir sonraki başarılı Put Block List işlemde işlenir.

Çağrıldıktan sonra Put Block List , blok listesinde belirtilen tüm kaydedilmemiş bloklar yeni blobun bir parçası olarak işlenir. Blob için blok listesinde belirtilmeyen tüm kaydedilmemiş bloklar atık olarak toplanır ve Blob Depolama'dan kaldırılır. Kaydedilmemiş bloklar, son Put Block başarılı işlemi izleyen bir hafta içinde aynı bloba Put BlockPut Block List veya bloba başarılı çağrı yapılmazsa da çöp olarak toplanır. Blob Yerleştir blobda çağrılırsa, kaydedilmemiş bloklar çöp olarak toplanır.

Blob etkin bir kiraya sahipse, istemcinin bloba blok yazmak için istekte geçerli bir kira kimliği belirtmesi gerekir. İstemci bir kira kimliği belirtmezse veya geçersiz bir kira kimliği belirtirse, Blob Depolama 412 (Önkoşul Başarısız) durum kodunu döndürür. İstemci bir kira kimliği belirtiyorsa ancak blobda etkin kiralama yoksa Blob Depolama 412 durum kodunu da döndürür (Önkoşul Başarısız oldu).

Belirtilen blob için tüm blok kimlikleri aynı uzunlukta olmalıdır. Blok, mevcut kaydedilmemiş blokların blok kimliklerinden farklı uzunlukta bir blok kimliğiyle karşıya yüklenirse, hizmet hata yanıt kodu 400 (Hatalı İstek) döndürür.

Sürüm 2019-12-12 veya üzeri için 4.000 MiB'den büyük, sürüm 2016-05-31 veya üzeri için 100 MiB'den büyük veya eski sürümler için 4 MiB'den büyük bir bloğu karşıya yüklemeye çalışırsanız, hizmet 413 (İstek Varlığı Çok Büyük) durum kodunu döndürür. Hizmet ayrıca bayt cinsinden izin verilen en büyük blok boyutu da dahil olmak üzere yanıttaki hata hakkında ek bilgiler döndürür.

Çağrısı Put Block , mevcut blobun son değiştirme zamanını güncelleştirmez.

Sayfa blobu üzerinde çağrılması Put Block bir hata döndürür.

Arşivlenmiş blob üzerinde çağrılması Put Block bir hata döndürür ve bunu bir hot veya cool blob üzerinde çağırmak blob katmanını değiştirmez.

Faturalama

Fiyatlandırma istekleri, Blob Depolama API'lerini kullanan istemcilerden, doğrudan Blob Depolama REST API'si aracılığıyla veya bir Azure Depolama istemci kitaplığından kaynaklanabilir. Bu istekler işlem başına ücret tahakkuk eder. İşlem türü, hesabın ücretlendirilmeyi etkiler. Örneğin, okuma işlemleri yazma işlemlerinden farklı bir faturalama kategorisine tahakkuk eder. Aşağıdaki tabloda, depolama hesabı türüne göre istekler için Put Block faturalama kategorisi gösterilmektedir:

İşlem Depolama hesabı türü Faturalama kategorisi
Blok Koy Premium blok blobu
Standart genel amaçlı v2
Standart genel amaçlı v1
Yazma işlemleri1

1Put Block işlem, depolama hesabının varsayılan erişim katmanını kullanarak geçici depolamaya bloklar yazar. Örneğin, bir blobu arşiv katmanına yüklüyorsanız, karşıya yüklemenin parçası olan tüm Put Block işlemler, depolama hesabının hedef katmanına değil varsayılan erişim katmanına göre yazma işlemleri olarak ücretlendirilir. Put Block List ancak ve Put Blob işlemleri, blobun hedef katmanına göre yazma işlemleri olarak ücretlendirilir.

Belirtilen faturalama kategorisinin fiyatlandırması hakkında bilgi edinmek için bkz. Azure Blob Depolama Fiyatlandırması.

Ayrıca bkz.

Azure Depolama'ya yönelik istekleri yetkilendirme
Durum ve hata kodları
Blob hizmeti hata kodları
Blob hizmeti işlemleri için zaman aşımlarını ayarlama