URL'den Engelle'yi koyma

işlemi, Put Block From URL içeriğin URL'den okunan bir blob'un parçası olarak iş için yeni bir blok oluşturur. Bu API sürümünden itibaren 2018-03-28 kullanılabilir.

İstek

Put Block From URLİstek aşağıdaki gibi oluşturulmuş olabilir. HTTPS önerilir. myaccount yerine depolama hesabınız adını yazın:

PUT Yöntemi İsteği URI'si HTTP Sürümü
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Öykünen Depolama Hizmeti URI'si

Öykünücü konak adına ve Blob hizmeti bağlantı noktasına öykünücüsü olarak bir istekte bulunuyor ve ardından öykünücü depolama 127.0.0.1:10000 hesabı adını belirtin:

PUT Yöntemi İsteği 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. Azure Depolama Emulator Geliştirme ve Test için 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.

Belirli bir blob için parametre için belirtilen değerin uzunluğu blockid her blok için aynı boyutta olmalıdır.

Base64 dizesinin URL ile kodlanmış olması gerektiğini unutmayın.
timeout İsteğe bağlı. timeoutparametresi saniyeler içinde ifade edildi. Daha fazla bilgi için bkz. Blob Hizmeti İşlemleri için Zaman Aşımı Ayarlama.

İstek Üst Bilgileri

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

İstek Başlığı Açıklama
Authorization Gereklidir. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama 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.
x-ms-version Tüm yetkili istekler için gereklidir. Bu istek için kullanmak üzere işlem sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama Services için sürüm. Url'den Blok Koy için sürüm 2018-03-28 veya daha yeni bir sürüm olmalıdır.
Content-Length Gereklidir. İstek gövdesinde iletilen bayt sayısını belirtir. Bu üst bilgi değerinin sıfır olarak ayarlanmış olması gerekir. Uzunluk sıfır değilken, işlem 400 (Hatalı İstek) durum koduyla başarısız olur.
x-ms-copy-source:name Gereklidir. Kaynak blob'un URL'sini belirtir. Değer, bir blobu belirten en fazla 2 KiB uzunluğunda bir URL olabilir. Değerin, istek URI'sinde görünecek şekilde URL ile kodlanmış olması gerekir. Kaynak blob genel olmalı veya paylaşılan erişim imzası aracılığıyla yetkilendirilmalı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 şemasını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama.
Yalnızca şema taşıyıcısı, Azure Active Directory.
Bu üst bilgi 2020-10-02 ve sonraki sürümlerde de kullanılabilir.
x-ms-source-range İsteğe bağlı. Belirtilen aralıkta kaynak URL'de yalnızca blob baytlarını karşıya yükler. Bu belirtilmezse, kaynak blob içeriğinin tamamı tek bir blok olarak karşıya yükler. Daha fazla bilgi için bkz. Blob Hizmeti İşlemleri için Aralık Üst Bilgisini Belirtme.
x-ms-source-content-md5 İsteğe bağlı. URI'den gelen 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 belirtilirken, depolama hizmeti kopyalama kaynağından gelen içeriğin karması ile bu üst bilgi değerini karşılar.

Bu md5 karması blob ile 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 gelen 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 belirtilirken, depolama hizmeti kopyalama kaynağından gelen içeriğin karması ile bu üst bilgi değerini karşılar.

Bu CRC64 karması blob ile depolanmaz.

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

Hem hem x-ms-source-content-md5 de üst bilgileri varsa istek x-ms-source-content-crc64 400 (Hatalı İstek) ile başarısız olur.

Bu üst bilgi, 2019-02-02 veya sonraki sürümlerde de kullanılabilir.
x-ms-encryption-scope İsteğe bağlı. Kaynak içeriklerini şifrelemek için kullanılan şifreleme kapsamını gösterir. Bu üst bilgi, 2019-02-02 veya sonraki sürümlerde de kullanılabilir.
x-ms-lease-id:<ID> Blob etkin 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ı. Depolama analizi günlüğü etkinleştirildiğinde analiz günlüklerine kaydedilen 1 KiB karakter sınırıyla istemci tarafından oluşturulan ve opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucu tarafından alınan istekler arasında bağıntı sağlamak için bu üst bilginin kullanılması kesinlikle önerilir. Daha fazla bilgi için bkz. Depolama Analiz Günlüğü ve Azure Günlüğü Hakkında: İstekleri Izlemek için Depolama Kullanma.

İ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 blobu şifreleme isteğinde aşağıdaki üst bilgiler belirtilebilir. Müşteri tarafından sağlanan anahtarla (ve karşılık gelen üst bilgi kümesiyle) şifreleme isteğe bağlıdır.

İstek üst bilgisi Açıklama
x-ms-encryption-key Gereklidir. Base64 ile kodlanmış AES-256 şifreleme anahtarı.
x-ms-encryption-key-sha256 Gereklidir. Şifreleme anahtarının Base64 ile kodlanmış SHA256 karması.
x-ms-encryption-algorithm: AES256 Gereklidir. Şifreleme için kullanılan algoritmayı belirtir. Bu üst bilginin değeri olması AES256 gerekir.

İstek Gövdesi

İstek gövdesi yok.

Örnek İstek

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 bilgi için bkz. Durum ve Hata Kodları.

Yanıt Üst Bilgileri

Bu işlem için 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 uygun.

Yanıt üst bilgisi Açıklama
Content-MD5 İstemcinin ileti içerik bütünlüğünü denetlemesi için bu üst bilgi döndürülür. Bu üst bilginin değeri Blob hizmeti tarafından hesaplanır; bu, istek üst bilgisinde belirtilen değerle aynı olmayabilir. 2019-02-02 veya sonraki sürümlerde Bu üst bilgi yalnızca istekte bu üst bilgi olduğunda döndürülür.
x-ms-content-crc64 2019-02-02 veya sonraki sürümler için, istemcinin ileti içerik bütünlüğünü denetlemesi için bu üst bilgi döndürülür. Bu üst bilginin değeri Blob hizmeti tarafından hesaplanır; bu, istek üst bilgisinde belirtilen değerle aynı olmayabilir.

İstekte üst bilgi x-ms-source-content-md5 mevcut değilken bu üst bilgi döndürülür.
x-ms-request-id Bu üst bilgi, yapılan isteği benzersiz bir şekilde tanımlar ve isteğin sorunlarını gidermek için kullanılabilir. Daha fazla bilgi için bkz. API İşlemleri Sorunlarını Giderme.
x-ms-version İsteği yürütmek için kullanılan Blob hizmetinin sürümünü gösterir.
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 veya daha yenisi. Bloğun içeriği belirtilen algoritma kullanılarak başarıyla şifrelenirse ve aksi takdirde bu üst bilgi true değeri olarak false ayarlanır.
x-ms-encryption-key-sha256 Sürüm 2019-02-02 veya daha yenisi. İstek şifreleme için müşteri tarafından sağlanan bir anahtar kullandı ise bu üst bilgi döndürülür, böylece istemci, isteğin içeriğinin sağlanan anahtar kullanılarak başarıyla şifrelenir.
x-ms-encryption-scope Sürüm 2019-02-02 veya daha yenisi. İstek bir şifreleme kapsamı kullandı ise bu üst bilgi döndürülür, bu nedenle istemci, şifreleme kapsamı kullanılarak isteğin içeriğinin başarıyla şifrelenir.
x-ms-client-request-id Bu üst bilgi, isteklerde ve ilgili yanıtlarda sorun gidermek için kullanılabilir. bu üst bilginin değeri, istekte mevcutsa üst bilginin değerine eşittir ve değer en fazla x-ms-client-request-id 1024 görünür ASCII karakteridir. üst x-ms-client-request-id bilgisi istekte yoksa, yanıtta bu üst bilgi mevcut olmaz.

Ö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

Bu işlem hesap sahibi ve Paylaşılan Erişim İmzası olan ve bu bloba veya kapsayıcıya yazma izni olan herkes tarafından çağrılabilir.

Açıklamalar

Put Block From URL bir blok blobu gelecekte dahil etmek için bir bloğu karşıya yükler. Blok blobu en fazla 50.000 blok içerebilir. Her blok farklı bir boyut olabilir. Karşıya yüklenen bir bloğun boyut üst sayısı Put Block From URL 100 MiB'tir. Daha büyük blokları (en fazla 4000 MiB) karşıya yüklemek için bkz. Put Block.

Sürüm 2020-10-02 ve daha yeni Azure Active Directory kopyalama işlemi kaynağı için kimlik doğrulama desteği de vardır.

Bir blob, herhangi bir zamanda en fazla 100.000 işsiz bloka sahip olabilir. Bu maksimum değer aşılırsa hizmet 409 (RequestEntityTooLargeBlockCountExceedsLimit) durum kodunu döndürür.

Aşağıdaki tabloda hizmet sürümü tarafından izin verilen en büyük blok ve blob boyutları açıklandı.

Hizmet sürümü En büyük blok boyutu (URL'den Blok Koy yoluyla) Maksimum blob boyutu (Put Block List aracılığıyla) Tek yazma işlemiyle maksimum blob boyutu (URL'den Blob Koy aracılığıyla)
Sürüm 2020-04-08 ve sonrası 4000 MiB Yaklaşık 190,7 TiB (4000 MiB X 50.000 blok) 5000 MiB (önizleme)
2020-04-08 öncesi sürümler 100 MiB Yaklaşık 4,75 TiB (100 MiB X 50.000 blok) 256 MiB

Bir blok kümesi yükledikten sonra, Blok Listesini Koy işlemi çağrılarak bu kümeden sunucu üzerinde blob oluşturabilir veya güncelleştirebilirsiniz. Küme içindeki her blok, bu blob içinde benzersiz olan bir blok kimliğiyle tanımlanır. Blok kimlikleri belirli bir blob kapsamına sahip olduğu için farklı bloblarda aynı kimliklere sahip bloklar olabilir.

Henüz mevcut Put Block From URL olmayan bir blobda çağrısı yaparsanız, içerik uzunluğu 0 olan yeni bir blok blobu oluşturulur. Seçenek belirtilmişse, bu blob List Blobs işlemi tarafından include=uncommittedblobs numaralandı. Karşıya yüklediğiniz blok veya bloklar, yeni Put Block List blobda çağrısı yapılana kadar işlanmaz. Bu şekilde oluşturulan blob bir hafta boyunca sunucuda korunur; Bu süre içinde bloba daha fazla blok veya işleme bloğu eklenmezse, blob atık toplanır.

işlemiyle başarıyla yüklenen bir blok, ile işlenene Put Block From URL kadar blob'un parçası Put Block List olmaz. Yeni veya güncelleştirilmiş blobu işlemek için çağrılmadan önce, Get Blob'a yapılan tüm çağrılar, işlenmemiş bloğu dahil etmeden Put Block List blob içeriklerini geri döner.

Henüz işlenmiş başka bir blokla aynı blok kimliğine sahip bir bloğu karşıya yüklersiniz, bu kimliğin yüklenmiş olduğu son blok bir sonraki başarılı işlemde Put Block List işlenmiş olur.

Çağrıldıktan Put Block List sonra, blok listesinde belirtilen tüm işlanmamış bloklar yeni blob'un bir parçası olarak işlendi. Blob için blok listesinde belirtilmemiş tüm işlanmamış bloklar atık olarak toplanır ve Blob hizmetten kaldırılır. Son başarılı işlemi takip eden bir hafta içinde aynı bloba veya bloba başarılı çağrılar yoksa, işlanmamış Put Block From URL Put Block List bloklar da atık Put Block From URL olarak toplanır. Blobu Koy blobu çağrılırsa, işlanmamış tüm bloklar atık olarak toplanır.

Blob etkin bir kiraya sahipse, bloba blok yazmak için istemcinin istekte geçerli bir kira kimliği belirtmesi gerekir. İstemci bir kira kimliği belirtmezseniz veya geçersiz bir kira kimliği belirtirse, Blob hizmeti 412 (Önkoşul Başarısız) durum kodunu döndürür. İstemci bir kira kimliği belirtirse ancak blob etkin kiralamaya sahip yoksa, Blob hizmeti 412 (Önkoşul Başarısız) durum kodunu da döndürür.

Verilen blob için tüm blok kimlikleri aynı uzunlukta olmalıdır. Mevcut işlanmamış bloklar için blok kimlikleri farklı uzunlukta bir blok kimliğiyle karşıya yüklenen bir blok, hizmet 400 (Hatalı İstek) hata yanıt kodunu döndürür.

çağrısı, Put Block From URL mevcut bir blob'un son değiştirme zamanlarını güncelleştirmez.

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

Arşivlenmiş Put Block From URL blobda çağrısı bir hata döndürür ve Hot / Cool blobda blob katmanını değiştirmez.

Ayrıca Bkz.