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/http
binary
ü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 header
sahip 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 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.
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
'dirSet 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=container
Hesap SAS'sinin tarafındanBlob Batch
desteklenen 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