URL'den Blok Koy
İşlem, Put Block From URL
içeriklerin bir URL'den okunduğu 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ü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. Kodlamadan önce dizenin boyutu 64 bayttan küçük veya buna eşit olmalıdır. Belirtilen blob için parametre için blockid belirtilen değerin 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 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. için Put Block From URL sü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 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. Aşağıda kaynak nesne URL'lerinin bazı örnekleri 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 isteklerini yetkilendirme. Microsoft Entra 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, URI'den veri aktarımı 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ı blobla birlikte depolanmaz. İki karma eşleşmezse 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, URI'den veri aktarımı 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şmezse işlem 400 (Hatalı İstek) hata koduyla başarısız olur. Hem hem de x-ms-source-content-md5 x-ms-source-content-crc64 üst bilgiler 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. 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. İ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 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
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 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 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çeriği 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ı 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 |
2019-02-02 ve sonraki sürümler için. İstemcinin ileti içeriği 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ı olmayabilir. İ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 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ü. |
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 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 döndürülür, böylece istemci sağlanan anahtar kullanılarak isteğin içeriğinin 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 |
İ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. İstekte x-ms-client-request-id üst bilgi 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şim işlemi çağrılırken yetkilendirme gereklidir. İşlemi aşağıda açıklandığı gibi yetki Put Block From URL
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, Microsoft Entra kullanıcı, grup, yönetilen kimlik 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 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 From URL
bir blok bloba gelecekte dahil edilmesi için bir bloğu karşıya yükler. Blok blobu en fazla 50.000 blok içerebilir. Her blok farklı bir boyuta sahip 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 Microsoft Entra yetkilendirme desteklenir.
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 List
iş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 URL
Put 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 hot
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 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.