URL'den Blok Koy

İşlem, Put Block From URL içeriklerin url'den okunduğu bir blobun parçası olarak işlenecek yeni bir blok oluşturur. Bu API, 2018-03-28 sürümünden itibaren kullanılabilir.

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Put Block From URL . 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ülmüş depolama hizmetine yönelik istekte bulunmak için öykünücü konak adını ve Blob hizmeti bağlantı noktasını olarak 127.0.0.1:10000ve ardından öykünülmüş 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. Kodlamadan önce, dizenin boyutu 64 bayttan küçük veya buna eşit olmalıdır.

Belirtilen blob için, parametre için belirtilen değerin blockid uzunluğu her blok için 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'ya istekleri 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'ya istekleri 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. için Put Block From URLsürüm 2018-03-28 veya üzeri olmalıdır.
Content-Length Gereklidir. İstek gövdesinde iletilen bayt sayısını belirtir. Bu üst bilginin değeri 0 olarak ayarlanmalıdır. Uzunluk 0 olmadığında işlem 400 (Hatalı İstek) durum koduyla başarısız olur.
x-ms-copy-source:name Gereklidir. Kaynak blobun URL'sini belirtir. Değer, blob belirten en fazla 2 kibibayt (KiB) uzunluğunda bir URL olabilir. Değer, istek URI'sinde göründüğü gibi URL ile kodlanmış olmalıdır. Kaynak blob ortak veya paylaşılan erişim imzası aracılığıyla yetkilendirilmiş olmalıdır. Kaynak blob genel ise, işlemi gerçekleştirmek için yetkilendirme gerekmez. Kaynak nesne URL'lerine bazı örnekler aşağıda verilmiştir:

- https://myaccount.blob.core.windows.net/mycontainer/myblob
- https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
- https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>
x-ms-copy-source-authorization: <scheme> <signature> İsteğe bağlı. Kopyalama kaynağı için yetkilendirme düzenini ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme.
Azure Active Directory için yalnızca taşıyıcı düzeni desteklenir.
Bu üst bilgi 2020-10-02 ve sonraki sürümlerde desteklenir.
x-ms-source-range İsteğe bağlı. Belirtilen aralıktaki kaynak URL'deki blobun yalnızca baytlarını karşıya yükler. Bu üst bilgi belirtilmezse, kaynak blob içeriğinin tamamı tek bir blok olarak karşıya yüklenir. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için aralık üst bilgisini belirtme.
x-ms-source-content-md5 İsteğe bağlı. URI'den blok içeriğinin MD5 karması. Bu karma, verilerin URI'den taşınması sırasında bloğun bütünlüğünü doğrulamak için kullanılır. Bu üst bilgi belirtildiğinde, depolama hizmeti kopyalama kaynağından gelen içeriğin karması ile bu üst bilgi değerini karşılaştırır.

Not: Bu MD5 karması blob ile birlikte depolanmaz.

İki karma eşleşmiyorsa işlem 400 (Hatalı İstek) hata koduyla başarısız olur.
x-ms-source-content-crc64 İsteğe bağlı. URI'den blok içeriğinin CRC64 karması. Bu karma, verilerin URI'den taşınması sırasında bloğun bütünlüğünü doğrulamak için kullanılır. Bu üst bilgi belirtildiğinde, depolama hizmeti kopyalama kaynağından gelen içeriğin karması ile bu üst bilgi değerini karşılaştırır.

Not: Bu CRC64 karması blob ile birlikte depolanmaz.

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

Hem hem de x-ms-source-content-md5x-ms-source-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ı. Kaynak içeriği ş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. Bu işlemi etkin kiralaması olan bir blob üzerinde 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 kibibayt (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 ü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 kodlamalı 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

Yok.

Ö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: 2018-03-28  
x-ms-date: Sat, 31 Mar 2018 14:37:35 GMT    
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-499

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

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. İstek üst bilgilerinde belirtilen değerle aynı olması gerekmez. 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 2019-02-02 ve üzeri sürümler için. İ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. İstek üst bilgilerinde belirtilen değerle aynı olması gerekmez.

İstekte üst bilgi olmadığında x-ms-source-content-md5 döndürülür.
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar ve isteğin sorunlarını 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ü.
Date Hizmet tarafından oluşturulan ve yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri.
x-ms-request-server-encrypted: true/false Sürüm 2015-12-11 ve üzeri. Bloğun 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 falseayarlanı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 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 döndürülür; böylece istemci, isteğin içeriğinin şifreleme kapsamı kullanılarak başarıyla şifrelenmesini sağlayabilir.
x-ms-client-request-id İsteklerin ve karşılık gelen yanıtların sorunları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 üst bilginin değerine x-ms-client-request-id eşittir. x-ms-client-request-id Üst bilgi istekte yoksa yanıtta bulunmaz.

Örnek yanıt

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sat, 31 Mar 2018 23:47:09 GMT  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Yetkilendirme

Azure Depolama'da herhangi bir veri erişimi işlemi çağrılırken yetkilendirme gereklidir. İşlemi aşağıda açıklandığı gibi yetki Put Block From URL verebilirsiniz.

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 güvenlik sorumlusuna izinler verilmektedir. Güvenlik sorumlusu bir kullanıcı, grup, uygulama hizmet sorumlusu veya Azure yönetilen kimliği olabilir. Güvenlik sorumlusunun kimliği, OAuth 2.0 belirtecini döndürmek için 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, Microsoft Entra kullanıcı, grup veya hizmet sorumlusunun işlemi çağırması Put Block From URL 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.

Açıklamalar

Put Block From URL bir blok blobuna gelecekte dahil edilmesi için bir blok yükler. Blok blobu en fazla 50.000 blok içerebilir. Her blok farklı boyutta olabilir. Karşıya Put Block From URL yüklenen bir bloğun boyut üst sınırı 100 mebibayttır (MiB). Daha büyük blokları (en fazla 4.000 MiB) karşıya yüklemek için bkz. Blok Koyma.

Sürüm 2020-10-02 ve sonraki sürümlerde, kopyalama işleminin kaynağı için Azure Active Directory yetkilendirmesi desteklenir.

Bir blobun herhangi bir anda en fazla 100.000 çıkarılmamış bloğu olabilir. Bu üst sınır aşılırsa, hizmet 409 (RequestEntityTooLargeBlockCountExceedsLimit) durum kodunu döndürür.

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 From URL) Maksimum blob boyutu (aracılığıyla Put Block List) Tek yazma işlemi aracılığıyla maksimum blob boyutu (aracılığıyla Put Blob From URL)
Sürüm 2020-04-08 ve üzeri 4.000 MiB Yaklaşık 190,7 tebibayt (TiB) (4.000 MiB × 50.000 blok) 5.000 MiB
2020-04-08'den önceki sürümler 100 MiB Yaklaşık 4,75 TiB (100 MiB × 50.000 blok) 256 MiB

Bir blok kümesini karşıya yükledikten sonra, Blok Listesi Koy işlemini çağırarak bu kümeden sunucuda blob oluşturabilir veya güncelleştirebilirsiniz. Kümedeki her blok, söz konusu 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ı bloblar aynı kimliklere sahip bloklara sahip olabilir.

Henüz var olmayan bir blobu çağırırsanız Put Block From URL , 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şlenen blok eklemediyseniz blob çöp olarak toplanır.

İşlemle Put Block From URL başarıyla karşıya yüklenen bir blok, ile Put Block Listişlenene kadar 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 karşıya yüklenen son 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 sıkıştırılmamış 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. Son Put Block From URL başarılı işlemi izleyen bir hafta içinde aynı bloba Put Block From URLPut Block List veya bloba yapılan başarılı çağrılar yoksa, kaydedilmemiş bloklar da çöp olarak toplanır. Blobu 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 kiralama 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 blob etkin bir kiraya sahip değilse, Blob Depolama 412 durum kodunu da döndürür (Önkoşul Başarısız oldu).

Belirtilen blob için tüm blok kimliklerinin aynı uzunlukta olması gerekir. 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.

Çağrısı Put Block From URL , mevcut blobun son değiştirme zamanını güncelleştirmez.

Put Block From URL Sayfa blobu çağrısı bir hata döndürür.

Put Block From URL Bir 'arşiv' blobu üzerinde çağrılması bir hata döndürür ve bunu veya hotcool 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 nasıl ücretlendirildiğinden etkilenir. Ö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 From URL faturalama kategorisi gösterilmektedir:

İşlem Depolama hesabı türü Faturalama kategorisi
URL'den Engelle koy (hedef hesap1) Premium blok blobu
Standart genel amaçlı v2
Standart genel amaçlı v1
Yazma işlemleri
URL'den Engelle koy (kaynak hesap2) Premium blok blobu
Standart genel amaçlı v2
Standart genel amaçlı v1
Okuma işlemleri

1Hedef hesap, yazma işlemini başlatmak için bir işlem için ücretlendirilir.
2Kaynak hesap, kaynak nesneye yapılan her okuma isteği için bir işlem oluşturur.

Ayrıca, kaynak ve hedef hesaplar farklı bölgelerde (örneğin, ABD Kuzey ve ABD Güney) bulunuyorsa, isteği aktarmak için kullanılan bant genişliği çıkış olarak kaynak depolama hesabına ücretlendirilir. Aynı bölgedeki hesaplar arasında çıkış ücretsizdir.

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

Ayrıca bkz.