Share via


Blob Batch

bu Blob Batch işlem, birden çok API çağrısının tek bir HTTP isteğine katıştırılmasını sağlar. Bu API iki tür alt sorgu destekler: Blok blobları için Blob Katmanını ayarlama ve Blobu Silme. Bir toplu iş isteği için sunucu tarafından döndürülen yanıt, toplu iş içindeki her alt isteğin sonuçlarını içerir. Toplu işlem isteği ve yanıtı, semantik değişiklikleriyle birlikte toplu işlem belirtiminin OData söz dizimini kullanır. Bu API, 2018-11-09 sürümünden itibaren kullanılabilir.

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Blob Batch . HTTPS önerilir. myaccount değerini depolama hesabınızın adıyla değiştirin.

Yöntem İstek URI'si HTTP sürümü
POST https://myaccount.blob.core.windows.net/?comp=batch

https://myaccount.blob.core.windows.net/containername?restype=container&comp=batch
HTTP/1.1

URI parametreleri

İstek URI'sinde aşağıdaki ek parametreleri belirtebilirsiniz.

Parametre Açıklama
timeout İsteğe bağlı. Zaman aşımı parametresi, en fazla 120 saniye değeriyle saniye cinsinden ifade edilir. Daha fazla bilgi için bkz . Blob Depolama işlemleri için zaman aşımlarını ayarlama.
restype İsteğe bağlı, sürüm 2020-04-08 ve üzeri. parametresi için restype desteklenen tek değerdir container. Bu parametre belirtildiğinde, URI kapsayıcı adını içermelidir. Tüm alt isteklerin kapsamı aynı kapsayıcıda olmalıdır.

İstek üst bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.

İstek üst bilgisi Açıklama
Authorization Gereklidir. Yetkilendirme düzenini, depolama hesabı 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. Bu sürüm tüm alt sorgular için kullanılacaktır. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.
Content-Length Gereklidir. İsteğin uzunluğu.
Content-Type Gereklidir. Bu üst bilginin değeri, toplu iş sınırına sahip olmalıdır multipart/mixed. Örnek üst bilgi değeri: multipart/mixed; boundary=batch_a81786c8-e301-4e42-a729-a32ca24ae252.
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. İzleme Azure Blob Depolama.

İstek gövdesi

Blob toplu işleminin istek gövdesi tüm alt isteklerin listesini içerir. biçimi, toplu iş belirtiminin söz dizimini OData , semantik değişiklikleriyle birlikte kullanır.

İstek gövdesi bir toplu iş sınırıyla başlar ve ardından iki zorunlu üst bilgi alır: Content-Type değeri olan üst bilgi ve Content-Transfer-Encoding değeriyle application/httpbinaryüst bilgi. Bunu, alt isteklerin her birini izlemek için bir dize değeriyle isteğe bağlı Content-ID bir üst bilgi izler. Yanıt, izleme için kullanılacak karşılık gelen her alt sorgu yanıtının üst bilgisini içerir Content-ID .

Bu istek üst bilgileri, ardından zorunlu boş bir satır ve ardından her alt isteğin tanımıdır. Her alt isteğin gövdesi, istek için gereken fiil, URL, üst bilgiler ve gövde içeren eksiksiz bir HTTP isteğidir. Aşağıdaki uyarılara dikkat edin:

  • Alt isteklerin x-ms-version headersahip olmaması gerekir. Tüm alt istekler en üst düzey toplu iş isteği sürümüyle çalıştırılır.
  • Alt sorgu URL'si yalnızca URL'nin yoluna (konak olmadan) sahip olmalıdır.
  • Her toplu istek en fazla 256 alt isteği destekler.
  • Tüm alt istekler aynı istek türünde olmalıdır.
  • Her alt sorgu, alt sorguda sağlanan bilgilerle birlikte ayrı olarak yetkilendirilmiştir.
  • İstek gövdesindeki her satır \r\n karakterle bitmelidir.

Örnek istek

POST http://account.blob.core.windows.net/?comp=batch HTTP/1.1 
Content-Type: multipart/mixed; boundary=batch_357de4f7-6d0b-4e02-8cd2-6361411a9525 
x-ms-version: 2018-11-09 
Authorization: SharedKey account:QvaoYDQ+0VcaA/hKFjUmQmIxXv2RT3XwwTsOTHL39HI=
Host: 127.0.0.1:10000 
Content-Length: 1569 

--batch_357de4f7-6d0b-4e02-8cd2-6361411a9525 
Content-Type: application/http 
Content-Transfer-Encoding: binary 
Content-ID: 0 

DELETE /container0/blob0 HTTP/1.1 
x-ms-date: Thu, 14 Jun 2018 16:46:54 GMT 
Authorization: SharedKey account:G4jjBXA7LI/RnWKIOQ8i9xH4p76pAQ+4Fs4R1VxasaE= 
Content-Length: 0 

--batch_357de4f7-6d0b-4e02-8cd2-6361411a9525 
Content-Type: application/http 
Content-Transfer-Encoding: binary 
Content-ID: 1 

DELETE /container1/blob1 HTTP/1.1 
x-ms-date: Thu, 14 Jun 2018 16:46:54 GMT 
Authorization: SharedKey account:IvCoYDQ+0VcaA/hKFjUmQmIxXv2RT3XwwTsOTHL39HI= 
Content-Length: 0 

--batch_357de4f7-6d0b-4e02-8cd2-6361411a9525 
Content-Type: application/http 
Content-Transfer-Encoding: binary 
Content-ID: 2 

DELETE /container2/blob2 HTTP/1.1 
x-ms-date: Thu, 14 Jun 2018 16:46:54 GMT 
Authorization: SharedKey account:S37N2JTjcmOQVLHLbDmp2johz+KpTJvKhbVc4M7+UqI= 
Content-Length: 0 

--batch_357de4f7-6d0b-4e02-8cd2-6361411a9525-- 

Yanıt

Yanıt, bir HTTP durum kodu ve en üst düzey toplu iş isteği için bir dizi yanıt üst bilgisi içerir. Yanıt, tüm alt istekleri için yanıt bilgilerini de içerir.

Yanıt gövdesi

Toplu yanıt, her alt sorgunun yanıtını içeren bir multipart/mixed yanıttır. Yanıt öbek halindedir. Her yanıt başlığıyla Content-Type: application/http başlar. Content-ID üst bilgisi, istekte sağlanmışsa aşağıdaki gibidir. Bunu http yanıt durum kodu ve her alt sorgu için yanıt üst bilgileri izler.

Her alt sorgu tarafından döndürülen üst bilgiler hakkında bilgi için Blob Silme ve BlobKatmanıNı Ayarlama işlemlerine ilişkin belgelere bakın.

Örnek yanıt

HTTP/1.1 202 Accepted 
Transfer-Encoding: chunked 
Content-Type: multipart/mixed; boundary=batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed 
x-ms-request-id: 778fdc83-801e-0000-62ff-033467000000 
x-ms-version: 2018-11-09 

409
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed 
Content-Type: application/http 
Content-ID: 0 

HTTP/1.1 202 Accepted 
x-ms-delete-type-permanent: true
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e284f 
x-ms-version: 2018-11-09 

--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed 
Content-Type: application/http 
Content-ID: 1 

HTTP/1.1 202 Accepted 
x-ms-delete-type-permanent: true
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e2851 
x-ms-version: 2018-11-09 

--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed 
Content-Type: application/http 
Content-ID: 2 

HTTP/1.1 404 The specified blob does not exist. 
x-ms-error-code: BlobNotFound 
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e2852 
x-ms-version: 2018-11-09 
Content-Length: 216 
Content-Type: application/xml 

<?xml version="1.0" encoding="utf-8"?> 
<Error><Code>BlobNotFound</Code><Message>The specified blob does not exist. 
RequestId:778fdc83-801e-0000-62ff-0334671e2852 
Time:2018-06-14T16:46:54.6040685Z</Message></Error> 
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed-- 
0

Durum kodu

Toplu iş isteği iyi biçimlendirilmiş ve yetkilendirilmişse, işlem 202 (Kabul Edildi) durum kodunu döndürür. Her alt sorgunun, işlemin sonucuna bağlı olarak kendi yanıtı vardır. Yanıt gövdesinde alt sorgu durumu döndürülür.

Daha fazla 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.

Yetkilendirme

Atlandığında restype=container , paylaşılan bir anahtar kullanarak üst toplu iş isteğini yetkilendirmeniz gerekir. Hesap erişim anahtarını, hesap paylaşılan erişim imzasını veya Microsoft Entra kullanabilirsiniz. Aşağıda gösterilen belirli yetkilendirme mekanizmalarının ayrıntıları.

İsteğe dahil edildiğinderestype=container, paylaşılan bir anahtar veya Microsoft Entra aracılığıyla üst toplu iş isteğini yetkilendirilebilirsiniz. Ayrıca, bu yetkilendirme mekanizmalarından herhangi biri tarafından imzalanan bir paylaşılan erişim imzası ile yetkilendirme yapabilirsiniz. Aşağıda gösterilen belirli yetkilendirme mekanizmalarının ayrıntıları.

Her alt sorgu ayrı olarak yetkilendirilmiştir. Alt sorgu, toplu işlemin parçası olmadığında işlemin desteklediği yetkilendirme mekanizmalarının aynısını destekler.

Ö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ı, grup, yönetilen kimlik veya hizmet sorumlusunun üst istekte bulunup bulunmaması Blob Batch 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.

Faturalama

Blob Batch REST isteği bir işlem olarak sayılır ve her bir alt istek de tek bir işlem olarak sayılır. Tek tek alt isteklerin faturalaması hakkında daha fazla bilgi edinmek için Blobu Silme ve BlobKatmanıNı Ayarlama işlemlerinin belgelerine bakın.

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 bir Blob Batch üst isteğin faturalama kategorisi gösterilmektedir:

İşlem Depolama hesabı türü Faturalama kategorisi
Blob Batch (Blob Katmanını Ayarla) Premium blok blobu
Standart genel amaçlı v2
Diğer işlemler

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

Açıklamalar

Toplu iş isteği kullanmanın temel avantajlarından biri, istemcinin açması gereken bağlantı sayısının azaltılmasıdır. Aşağıdaki kısıtlamalara dikkat edin:

  • Toplu işlemde desteklenen alt sorgular (blok blobları için) ve Delete Blob'dir Set Blob Tier .
  • Tek bir toplu işlemde en fazla 256 alt sorgu destekler. Toplu iş isteğinin gövdesinin boyutu 4 MB'ı aşamaz.
  • Boş bir toplu iş isteği 400 (Hatalı İstek) koduyla başarısız oluyor.
  • Toplu iş alt isteklerinin yürütülmesi sırasına ilişkin hiçbir garanti yoktur.
  • Batch alt sorgu yürütmesi atomik değildir. Her alt sorgu bağımsız olarak çalışır.
  • Her alt sorgu aynı depolama hesabı içindeki bir kaynak için olmalıdır. Tek bir toplu iş isteği, farklı depolama hesaplarından gelen istekleri çalıştırmayı desteklemez.
  • İç içe istek gövdesi desteklenmez.
  • Sunucu istek gövdesini ayrıştırmazsa, toplu iş tamamen başarısız olur ve hiçbir istek çalıştırılamaz.
  • Toplu işlem kullanmadığında restype=containerHesap SAS'sinin tarafından Blob Batchdesteklenen tek paylaşılan erişim imzası türü olduğunu unutmayın.

Tüm alt istekleri belirli bir kapsayıcının kapsamına alma

REST 2020-04-08 sürümünden Blob Batch itibaren API, belirtilen kapsayıcıya yönelik alt isteklerin kapsamını belirlemeyi destekler. İstek URI'sinde kapsayıcı adı ve parametresi bulunduğunda restype=container , her alt isteğin aynı kapsayıcıya uygulanması gerekir. Bir alt istek için belirtilen kapsayıcı adı URI'de sağlanan kapsayıcı adıyla eşleşmiyorsa, hizmet hata kodu 400 (Hatalı İstek) döndürür.

Kapsayıcı için desteklenen tüm yetkilendirme mekanizmaları kapsayıcı kapsamına alınmış bir Blob Batch işlem için geçerlidir. Her alt sorgu hizmete bir yetkilendirme üst bilgisi gönderir.

Ayrıca bkz.

Azure Depolama Durumu ve hata kodlarınayönelik istekleri yetkilendirmeBlob Depolama hata kodlarıBlob Depolama işlemleri için zaman aşımlarını ayarlama