Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İş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.
Ö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.
- Microsoft Entra Id (önerilen)
-
paylaşılan erişim imzaları (SAS)
-
paylaşılan anahtar
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 action:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- En az ayrıcalıklı yerleşik rol:Depolama Blob Veri Katkıda Bulunanı
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