Aracılığıyla paylaş


Blok Koy

İşlem, Put Block bir blobun parçası olarak bağlanacak yeni bir blok oluşturur.

İstek

Put Block isteğini aşağıdaki gibi oluşturabilirsiniz. HTTPS kullanmanızı öneririz. Hesabımı depolama hesabınızın adıyla değiştirin:

PUT yöntem isteği URI HTTP sürümü
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Öykünmüş depolama hizmeti isteği

Emülasyon edilmiş depolama hizmetine karşı bir talep yaparken, emülatör ana bilgisayar adını ve Blob servis portunu , ardından emüle edilen depolama hesabı adını belirtin 127.0.0.1:10000:

PUT yöntem isteği URI 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 Description
blockid Gerekli. Bloğu tanımlayan geçerli bir Base64 dize değeri. Kodlanmadan önce, dizinin boyutu 64 bayttan az veya eşit olmalıdır.

Belirli bir blob için, parametrenin değerinin blockid uzunluğu her blok için aynı boyutta olmalıdır.

Not: Base64 dizisi URL ile kodlanmış olmalıdır.
timeout Optional. Parametre timeout saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Blob servis işlemleri için zaman aşımını ayarlayın.

İstek başlıkları

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

İstek başlığı Description
Authorization Gerekli. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için Azure Storage'a Requests Authorize sayfasına bakınız.
Date veya x-ms-date Gerekli. İstek için Eşgüdümlü Evrensel Saati (UTC) belirtir. Daha fazla bilgi için bkz. azure depolamaistekleri yetkilendirme .
x-ms-version Tüm yetkili talepler için gereklidir. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için Azure Depolama Hizmetleri için Sürümleme bölümüne bakınız.
Content-Length Gerekli. Blok içeriğinin bayt cinsinden uzunluğu. Blok, 2019-12-12 ve sonrasında 4.000 mebibayttan (MiB) az veya eşit boyutta olmalıdır. Eski sürümlerdeki sınırlar için Açıklamalar bölümüne bakınız.

Uzunluk sağlanmadığında, işlem 411 (Uzunluk Gerekli) durum kodu ile başarısız olur.
Content-MD5 Optional. Blok içeriğinin MD5 hash'i. Bu hash, taşıma sırasında blokun bütünlüğünü doğrulamak için kullanılır. Bu başlık belirtildiğinde, depolama hizmeti gelen içeriğin hash'ını bu başlık değeriyle karşılaştırır.

Not: Bu MD5 hash blobla birlikte saklanmıyor.

İki hash eşleşmezse, işlem 400 (Kötü İstek) hata kodu ile başarısız olur.
x-ms-content-crc64 Optional. Blok içeriğinin CRC64 hash'i. Bu hash, taşıma sırasında blokun bütünlüğünü doğrulamak için kullanılır. Bu başlık belirtildiğinde, depolama hizmeti gelen içeriğin hash'ını bu başlık değeriyle karşılaştırır.

Not: Bu CRC64 hash blobla birlikte saklanmıyor.

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

Eğer hem Content-MD5 hem de x-ms-content-crc64 başlıkları varsa, talep 400 (Kötü İstek) ile başarısız olur.

Bu başlık, 2019-02-02 ve sonraki sürümlerde desteklenmektedir.
x-ms-encryption-scope Optional. İstek içeriğini şifrelemek için kullanılacak şifreleme kapsamını gösterir. Bu başlık, 2019-02-02 ve sonraki sürümlerde desteklenmektedir.
x-ms-lease-id:<ID> Blob etkin bir kiraya sahipse gereklidir. Bu işlemi etkin kirası olan bir blobda gerçekleştirmek için bu üst bilgi için geçerli kira kimliğini belirtin.
x-ms-client-request-id Optional. Günlük kaydı yapılandırıldığında günlüklere kaydedilen 1 kibibayt (KiB) karakter sınırına sahip istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinliklerini sunucunun aldığı isteklerle ilişkilendirmek için bu üst bilgiyi kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz.

İstek başlıkları (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 blob'u şifreleme talebinde aşağıdaki başlıklar belirtilebilir. Müşteri tarafından sağlanan anahtarla (ve ilgili başlık setiyle şifreleme) isteğe bağlıdır.

İstek başlığı Description
x-ms-encryption-key Gerekli. Base64 kodlu AES-256 şifreleme anahtarı.
x-ms-encryption-key-sha256 Gerekli. Base64 kodlu SHA256 şifreleme anahtarının hash'i.
x-ms-encryption-algorithm: AES256 Gerekli. Şifreleme için kullanılacak algoritmayı belirler. Bu başlığın değeri olmalıdır AES256.

Talep başlıkları (yapılandırılmış gövde)

2025-01-05 sürümü itibarıyla, yapılandırılmış gövde formatından yararlanmak için talebe göre aşağıdaki başlıklar belirtilebilir.

İstek başlığı Description
Content-Length Gerekli. Kodlanmış talebin uzunluğu olmalıdır (sadece blok içeriğinin uzunluğu değil).

Başlığın değeri, kodlanmış isteğin beklenen uzunluğuyla eşleşmiyorsa, işlem hata kodu 400 (Kötü İstek) ile başarısız olur.
x-ms-structured-body Gerekli. Mesaj formatı yapılandırılmışsa dahil edilmelidir. Bu başlığın değeri, mesaj şeması versiyonu ve özelliklerini içerir.

Şu anda desteklenen XSM/1.0; properties=crc64tek değer , bu da isteğin kodlanmış mesajda crc64 kontrol toplamı segmentleri kullandığını gösterir. Değer bu değerle eşleşmezse, işlem hata kodu 400 (Kötü İstek) ile başarısız olur. Eğer istekte sağlanan içerik, belirli bir segment için sağlanan kontrol toplamıyla eşleşmiyorsa (Kötü İstek) hata kodu 400 (Kötü İstek) de başarısız olacaktır.
x-ms-structured-content-length Gerekli. Mesaj formatı yapılandırılmışsa dahil edilmelidir. Bu başlığın değeri, blok içeriğinin uzunluğudur ve mesaj kodlaması nedeniyle her zaman başlık değerinden daha küçük Content-Length olacaktır.

Başlığın değeri, istekte verilen blok içeriğinin uzunluğuyla eşleşmiyorsa, işlem hata kodu 400 (Kötü İstek) ile başarısız olur.

İstek içeriği

İstek gövdesi blokun içeriğini içerir.

Numune isteği

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 bir dizi yanıt üst bilgisi 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 başlıkları

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 başlıklar HTTP/1.1 protokol belirtimine uygundur.

Yanıt üst bilgisi Description
Content-MD5 İstemcinin mesaj içeriğinin bütünlüğünü kontrol edebilmesi için geri gönderildi. Bu başlığın değeri Blob Storage tarafından hesaplanır ve istek başlıklarında belirtilen değerle aynı olmayabilir. 2019-02-02 ve sonraki sürümler için, bu başlık yalnızca istek bu başlığa sahip olduğunda geri döner.
x-ms-content-crc64 2019-02-02 ve sonrasında olan sürümler için, istemci mesaj içeriğinin bütünlüğünü kontrol edebilmek için bu başlık geri döner. Bu başlığın değeri Blob Storage tarafından hesaplanır ve istek başlıklarında belirtilen değerle aynı olmayabilir.

Bu başlık, başlık istekte bulunmadığında geri Content-md5 döner.
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar ve isteği gidermek için kullanabilirsiniz. Daha fazla bilgi için bkz. API işlem sorunlarını giderme.
x-ms-version Talebi çalıştırmak için kullanılan Blob Storage sürümünü gösterir. Bu başlık, 2009-09-19 veya daha sonraki sürümlere karşı yapılan talepler için geri gönderilir.
Date Hizmet tarafından oluşturulan ve yanıtın ne zaman başlatıldığını gösteren bir UTC tarih/saat değeri.
x-ms-request-server-encrypted: true/false 2015-12-11 ve sonraki sürümler. Bu başlığın true değeri, isteğin içeriği belirtilen algoritma kullanılarak başarıyla şifrelenmişse ayarlanır. Aksi takdirde, değer olarak ayarlanır false.
x-ms-encryption-key-sha256 2019-02-02 ve sonrası sürümler. Bu başlık, istemcinin şifreleme için müşteri tarafından sağlanan bir anahtar kullandığı takdirde geri döner; böylece istemci verilen anahtarla isteğin içeriğinin başarıyla şifrelendiğinden emin olabilir.
x-ms-encryption-scope 2019-02-02 ve sonrası sürümler. Bu başlık, istek şifreleme kapsamı kullandığında geri döner; böylece istemci şifreleme kapsamı kullanılarak isteğin içeriğinin başarıyla şifrelendiğinden emin olabilir.
x-ms-client-request-id İstekleri ve ilgili yanıtlarını gidermek için kullanılabilir. bu üst bilginin değeri, istekte mevcutsa ve değer 1.024'ten fazla görünür ASCII karakteri içermiyorsa x-ms-client-request-id üst bilgisinin değerine eşittir. İstekte x-ms-client-request-id üst bilgisi yoksa yanıtta bulunmaz.
x-ms-structured-body Eğer talep yapılandırılmış bir vücut talebi olarak işleniyorsa geri gönderilir. Bu başlığın değeri, talebe gönderilen değere eşittir ve şu anda bu değer olarak olmalıdır XSM/1.0; properties=crc64.

Ö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  

Authorization

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

Ö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. Daha sonra belirteç, 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 .

Permissions

Aşağıda bir Microsoft Entra kullanıcısı, grubu, yönetilen kimliği veya hizmet sorumlusunun Put Block işlemini çağırması 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.

Açıklamalar

Put Block gelecekte blok blob'a dahil edilmek üzere bir blok yükler. Bir blok blob'taki her blok farklı boyutta olabilir. Bir blok blobu en fazla 50.000 taahhüt edilmiş blok içerebilir.

Aşağıdaki tablo, hizmet versiyonlarına göre izin verilen maksimum blok ve blob boyutlarını açıklar:

Hizmet sürümü Maksimum blok boyutu (via Put Block) Maksimum blob boyutu (via Put Block List) Tek yazma işlemiyle maksimum blob boyutu (via Put Blob)
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
2016-05-31'den 2019-07-07'ye kadar olan versiyonlar 100 MiB Yaklaşık 4.75 TiB (100 MiB × 50.000 blok) 256 MiB
2016-05-31 tarihinden önceki sürümler 4 MiB Yaklaşık 195 gibibayt (GiB) (4 MiB × 50.000 blok) 64 MiB

Bir blobla ilişkilendirilebilecek maksimum taahhüt edilmemiş blok sayısı 100.000'dir. Bu sayı aşırsa, hizmet 409 (RequestEntityTooLargeBlockCountExceedsLimit) durum kodunu döndürür.

Bir blok seti yükledikten sonra, bu setten Put Block List işlemini çağırarak sunucudaki blob'u oluşturabilir veya güncelleyebiliyorsunuz. Kümedeki her blok, o blob içinde benzersiz bir blok kimliğiyle tanımlanır. Blok ID'ler belirli bir bloba göre kapsamlıdır, böylece farklı bloblar aynı ID'lere sahip bloklara sahip olabilir.

Henüz var olmayan bir blob çağırırsanız Put Block , içerik uzunluğu 0 olan yeni bir blok blob oluşturulur. Bu blob, seçenek belirtilmişse işlem List Blobsinclude=uncommittedblobs tarafından sayılır. Yüklediğiniz blok veya bloklar, yeni blob'u çağırana Put Block List kadar bağlanmaz. Bu şekilde oluşan bir blob sunucuda bir hafta boyunca tutulur. Eğer o süre içinde bloba daha fazla blok veya commit blok eklemediyseniz, blob çöp toplanmış sayılır.

İşlemle başarıyla Put Block yüklenen bir blok, bağlanana kadar bir blobun Put Block Listparçası olmaz. Before Put Block List çağrılır, yeni veya güncellenmiş blob'u commit etmek için çağrılır, Get Blob çağrıları blob içeriğini teslim eder ve bağlanmamış blok dahil edilir.

Eğer henüz bağlanmamış başka bir blokla aynı blok ID'sine sahip bir blok yüklerseniz, o ID'ye sahip son yüklenen blok bir sonraki başarılı Put Block List işlemde bağlanır.

Çağrıldıktan sonra Put Block List , engelleme listesinde belirtilen tüm taahhüt edilmemiş bloklar yeni blobun bir parçası olarak belirlenir. Blob için blok listesinde belirtilmemiş ve bağlanmamış bloklar, Blob Storage'dan toplanan ve kaldırılan çöplerdir. Belirlenmemiş bloklar da, son başarılı Put Block işlemden sonraki bir hafta içinde aynı blob'a veya Put Block List üzerinde başarılı çağrılar Put Block yapılmazsa çöp olarak toplanır. Eğer blob'a Put Blob çağrılırsa, bağlanmamış bloklar çöp toplanır.

Blobun aktif bir kira sözleşmesi varsa, istemci bloba blok yazmak için istek sırasında geçerli bir kira kimliği belirtmelidir. İstemci ya kira kimliği belirtmezse ya da geçersiz bir kira kimliği belirtirse, Blob Storage durum kodu 412'yi (Ön Koşul Başarısız Oldu) döndürür. İstemci bir kira kimliği belirtiyorsa ama blobun aktif bir kiralaması yoksa, Blob Storage ayrıca 412 (Ön Koşul Başarısız Oldu) durum kodu döndürür.

Belirli bir blob için, tüm blok kimlikleri aynı uzunlukta olmalıdır. Bir blok, mevcut belirlenmemiş blokların blok ID'lerinden farklı uzunlukta bir blok ID'si ile yüklenirse, hizmet hata yanıt kodu 400 (Kötü İstek) döner.

2019-12-12 veya sonrası sürüm için 4.000 MiB'den büyük, 2016-05-31 veya sonrası için 100 MiB'den büyük veya eski sürümler için 4 MiB'den büyük bir blok yüklemeye çalışırsanız, hizmet durum kodu 413'ü (Talep Varlık Çok Büyük) döndürür. Hizmet ayrıca yanıttaki hata hakkında, izin verilen maksimum blok boyutu da dahil olmak üzere, bayt cinsinden ek bilgi döndürür.

Çağırmak Put Block mevcut bir blobun son değiştirilen zamanını güncellemez.

Bir sayfa blobunda çağrı Put Block yapmak hata döndürür.

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

Billing

Fiyatlandırma istekleri, doğrudan Blob Depolama REST API'si aracılığıyla veya bir Azure Depolama istemci kitaplığından Blob Depolama API'lerini kullanan istemcilerden kaynaklanabilir. Bu istekler işlem başına ücret tahakkuk ettirir. İşlem türü, hesabın nasıl ücretlendirileceğini 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:

Operation Depolama hesabı türü Faturalama kategorisi
Blok Koy Premium blok blob
Standart Genel Amaçlı Versiyon 2
Standart genel amaçlı v1
Yazmaişlemleri 1

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

Belirtilen faturalama kategorisinin fiyatlandırması hakkında bilgi edinmek için bkz.

Ayrıca bakınız

Azure Depolama isteklerini yetkilendirme
Durum ve hata kodları
Blob servis hata kodları
Blob servis işlemleri için zaman aşımlarını ayarla