Aracılığıyla paylaş


URL'den Blok Koy

İşlem Put Block From URL , içeriğin bir 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

Put Block From URL isteğini aşağıdaki gibi oluşturabilirsiniz. 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 (İngilizce)

Öykünmüş depolama hizmeti isteği

Öykünülmüş depolama hizmetine karşı bir istekte bulunurken, öykünücü ana bilgisayar adını ve Blob hizmeti bağlantı noktasını şu şekilde 127.0.0.1:10000belirtin ve 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 (İngilizce)

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 Gerekli. 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 Opsiyonel. timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için zaman aşımlarını ayarlama.

İstek başlıkları

Gerekli ve isteğe bağlı istek üst bilgileri aşağıdaki tabloda açıklanmıştır:

İstek başlığı Açıklama
Authorization Gerekli. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. azure depolamaistekleri yetkilendirme .
Date veya x-ms-date Gerekli. İstek için Eşgüdümlü Evrensel Saati (UTC) belirtir. Daha fazla bilgi için bkz. azure depolamaistekleri 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ün 2018-03-28 veya üzeri olması gerekir.
Content-Length Gerekli. İstek gövdesinde iletilen bayt sayısını belirtir. Bu başlığın 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 Gerekli. Kaynak blobun URL'sini belirtir. Değer, bir blob belirten en fazla 2 kibibayt (KiB) uzunluğunda bir URL olabilir. Değer, bir istek URI'sinde göründüğü gibi URL ile kodlanmış olmalıdır. Kaynak blobun genel olması veya paylaşılan erişim imzası aracılığıyla yetkilendirilmiş olması gerekir. Kaynak blob herkese açıksa, 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> Opsiyonel. Kopyalama kaynağı için yetkilendirme düzenini ve imzayı belirtir. Daha fazla bilgi için bkz. azure depolamaistekleri yetkilendirme .

Not: Microsoft Entra için yalnızca bir taşıyıcı şeması desteklenir.

Not: Kaynak nesneniz genel olarak erişilebilir durumdaysa veya kaynak nesneniz bir depolama hesabındaysa ve geçirilmekte x-ms-copy-source:nameolan bir SAS belirteci kullanıyorsanız, bu üst bilgi gerekli değildir.

Bu başlık 2020-10-02 ve sonraki sürümlerde desteklenir.
x-ms-source-range Opsiyonel. Belirtilen aralıktaki kaynak URL'de yalnızca blobun 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 başlığını belirtme.
x-ms-source-content-md5 Opsiyonel. 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 kopya kaynağından gelen içeriğin karmasını bu üst bilgi değeriyle karşılaştırır.

Not: 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 Opsiyonel. 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 kopya kaynağından gelen içeriğin karmasını bu üst bilgi değeriyle karşılaştırır.

Not: Bu CRC64 karması blob ile depolanmaz.

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

Hem ve 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 Opsiyonel. Kaynak içeriği şifrelemek için kullanılacak şifreleme kapsamını belirtir. Bu üst bilgi 2019-02-02 ve sonraki sürümlerde desteklenir.
x-ms-lease-id:<ID> Blob etkin bir kiraya sahipse gereklidir. Etkin kirası olan bir blob üzerinde bu işlemi gerçekleştirmek için bu üst bilgi için geçerli kira kimliğini belirtin.
x-ms-client-request-id Opsiyonel. 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. azure blob depolama izleme.
x-ms-file-request-intent Üst bilgi bir Azure dosya URL'siyse ve x-ms-copy-source üst bilgi bir OAuth belirteci belirtiyorsa x-ms-copy-source-authorization gereklidir. Kabul edilebilir değer backup. Bu üst bilgi, Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action veya Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action, x-ms-copy-source-authorization üst bilgisi kullanılarak yetkilendirilmiş kimliğe atanan RBAC ilkesine eklenmişse verilmesi gerektiğini belirtir. 2025-07-05 ve sonraki sürümler için kullanılabilir.

İstek üst bilgileri (müşteri tarafından sağlanan şifreleme anahtarları)

2019-02-02 sürümünden itibaren, bir blobu müşteri tarafından sağlanan bir anahtarla şifreleme isteğinde aşağıdaki üst bilgiler belirtilebilir. Müşteri tarafından sağlanan bir anahtarla (ve karşılık gelen üst bilgi kümesiyle) şifreleme isteğe bağlıdır.

İstek başlığı Açıklama
x-ms-encryption-key Gerekli. Base64 kodlu AES-256 şifreleme anahtarı.
x-ms-encryption-key-sha256 Gerekli. Şifreleme anahtarının Base64 ile kodlanmış SHA256 karması.
x-ms-encryption-algorithm: AES256 Gerekli. Şifreleme için kullanılacak algoritmayı belirtir. Bu başlığın değeri AES256 olmalıdır.

İstek içeriği

Yok.

Numune isteği

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 başlıkları

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 bilgilerHTTP/1.1 protokol belirtimine uygundur.

Yanıt üst bilgisi Açıklama
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ı olmayabilir. 2019-02-02 ve sonraki sürümler için, bu üst bilgi yalnızca istek bu üst bilgiye sahip olduğunda döndürülür.
x-ms-content-crc64 2019-02-02 ve sonraki 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 mevcut 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ği gidermek için kullanabilirsiniz. Daha fazla bilgi için bkz. API işlem sorunlarını 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. Bu başlığın değeri, bloğun içeriğinin belirtilen algoritma kullanılarak başarılı bir şekilde şifrelenip şifrelenmediği olarak true ayarlanır. Aksi takdirde, değeri falseolarak ayarlanır.
x-ms-encryption-key-sha256 Sürüm 2019-02-02 ve üzeri. İstekte şifreleme için müşteri tarafından sağlanan bir anahtar kullanılıyorsa döndürülür, böylece istemci sağlanan anahtarı kullanarak isteğin içeriğinin başarıyla şifrelendiğinden emin olabilir.
x-ms-encryption-scope Sürüm 2019-02-02 ve üzeri. İstek bir şifreleme kapsamı kullanıyorsa döndürülür, böylece istemci isteğin içeriğinin şifreleme kapsamını kullanarak başarıyla şifrelendiğinden emin olabilir.
x-ms-client-request-id İsteklerde ve ilgili yanıtlarda sorun 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 x-ms-client-request-id üst bilgisinin değerine eşittir. İstekte x-ms-client-request-id üst bilgisi 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  

İzin

Azure Depolama'da herhangi bir veri erişim işlemi çağrılırken yetkilendirme gereklidir. aşağıda açıklandığı gibi Put Block From URL işlemini yetkileyebilirsiniz.

Ö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. Daha sonra belirteç, 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ısı, grubu, yönetilen kimliği veya hizmet sorumlusunun Put Block From URL işlemini çağırması için gereken RBAC eylemi ve bu eylemi içeren en az ayrıcalıklı yerleşik Azure RBAC rolü verilmiştir:

  • Azure RBAC eylemini : Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
  • En az ayrıcalıklı yerleşik rol: depolama blobu veri 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 Gelecekte bir blok blobuna dahil edilmek üzere bir bloğu karşıya yükler. Bir blok blobu en fazla 50.000 blok içerebilir. Her blok farklı bir boyutta olabilir. ile Put Block From URL yüklenen bir blok için maksimum boyut 100 mebibayttır (MiB). Daha büyük bloklar (4.000 MiB'ye kadar) yüklemek için bkz.

2020-10-02 ve sonraki sürümlerde, kopyalama işleminin kaynağı için Microsoft Entra yetkilendirmesi desteklenir.

Bir blob aynı anda en fazla 100.000 işlenmemiş bloğa sahip 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 büyük blok ve blob boyutları açıklanmaktadır:

Hizmet sürümü Maksimum blok boyutu (üzerinden)Put Block From URL En büyük blob boyutu (aracılığıyla Put Block List) Tek yazma işlemiyle en fazla 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 Milyon

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, bu blob içinde benzersiz olan bir blok kimliğiyle tanımlanır. Blok kimliklerinin kapsamı belirli bir blob olarak belirlenir, 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 List Blobs bu blob işlem tarafından include=uncommittedblobs 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 bir hafta boyunca sunucuda tutulur. Bu süre içinde bloba daha fazla blok eklemediyseniz veya blok işlemediyseniz, 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 bir parçası haline gelmez. Yeni veya güncelleştirilmiş blobu işlemek için çağrılmadan önce Put Block List , Blob Al'a yapılan tüm çağrılar, kaydedilmemiş bloğun eklenmesi olmadan blob içeriğini döndürür.

Henüz işlenmemiş başka bir blokla aynı blok kimliğine sahip bir blok yüklerseniz, bu kimliğe sahip son yüklenen 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 işlenmemiş bloklar yeni blobun bir parçası olarak işlenir. Blob için engelleme listesinde belirtilmeyen işlenmemiş bloklar çöp olarak toplanır ve Blob Depolama'dan kaldırılır. Son başarılı Put Block From URL işlemi izleyen bir hafta içinde aynı bloba veya Put Block List blob üzerinde başarılı bir çağrı Put Block From URL yoksa, işlenmemiş bloklar da çöp olarak toplanır. Blob üzerinde Blob Koy çağrılırsa, işlenmemiş bloklar çöp olarak toplanır.

Blobun etkin bir kirası varsa, istemcinin bloba bir blok yazma isteğinde geçerli bir kira kimliği belirtmesi gerekir. İstemci bir kira kimliği belirtmezse veya geçersiz bir kira kimliği belirtirse, Blob Depolama 412 (Önkoşul Başarısız Oldu) durum kodunu döndürür. İstemci bir kira kimliği belirtirse ancak blobun etkin bir kirası yoksa, Blob Depolama 412 (Önkoşul Başarısız Oldu) durum kodunu da döndürür.

Belirtilen blob için tüm blok kimlikleri aynı uzunlukta olmalıdır. Bir blok, mevcut işlenmemiş 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ğırma Put Block From URL , mevcut bir blobun son değiştirilme zamanını güncelleştirmez.

Bir sayfa blobunu çağırmak Put Block From URL bir hata döndürür.

'Arşiv' blobunu çağırmak Put Block From URL bir hata döndürür ve bunu bir hot veya cool blob üzerinde çağırmak blob katmanını değiştirmez.

Faturalandırma

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 ücretlendirilma şeklini 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 Put Block From URL istekleri için faturalama kategorisi gösterilmektedir:

Operasyon Depolama hesabı türü Faturalama kategorisi
URL'den Blok Koy (hedef hesap1) Premium blok blobu
Standart Genel Amaçlı Versiyon 2
Standart Genel Amaçlı v1
Yazma işlemleri
URL'den Blok Koy (kaynak hesap2) Premium blok blobu
Standart Genel Amaçlı Versiyon 2
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 gerçekleştirir.

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

Belirtilen faturalama kategorilerinin fiyatlandırması hakkında bilgi edinmek için Azure Blob Depolama Fiyatlandırması'na bakın.

Ayrıca bakınız