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:10000
ve 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 false ayarlanı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 eylemi:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- En az ayrıcalıklı yerleşik rol:Depolama Blob Verileri Katkıda Bulunanı
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 List
iş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 Block
Put 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