Aracılığıyla paylaş


URL'den Blob Kopyalama

İşlem, Copy Blob From URL 256 mebibayta (MiB) kadar kaynak blob boyutları için blobu depolama hesabındaki bir hedefe zaman uyumlu olarak kopyalar. Bu API, 2018-03-28 sürümünden itibaren kullanılabilir.

bir işlemin kaynağı Copy Blob From URL , ortak olan veya paylaşılan erişim imzası ile yetkilendirilmiş herhangi bir Azure depolama hesabındaki kaydedilmiş herhangi bir blok blobu olabilir.

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Copy Blob From URL . HTTPS kullanmanızı öneririz. myaccount değerini depolama hesabınızın adıyla, mycontainer değerini kapsayıcınızın adıyla ve myblob değerini de hedef blobunuzun adıyla değiştirin.

PUT yöntemi istek URI'si HTTP sürümü
https://myaccount.blob.core.windows.net/mycontainer/myblob HTTP/1.1

Öykünülen depolama hizmeti için URI

Öykünülen depolama hizmetine yönelik istekte bulunulduğunda öykünücü ana bilgisayar adını ve Azure Blob Depolama bağlantı noktasını olarak 127.0.0.1:10000belirtin ve ardından öykünülen depolama hesabının adını belirtin:

PUT yöntemi istek URI'si HTTP sürümü
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob HTTP/1.1

Daha fazla bilgi için bkz . Yerel Azure Depolama geliştirmesi için Azurite öykünücüsü kullanma.

URI parametreleri

İstek URI'sinde aşağıdaki ek parametreleri belirtebilirsiniz:

Parametre Açıklama
timeout İsteğe bağlı. timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Blob Depolama işlemleri için zaman aşımlarını ayarlama.

İ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, 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. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.
x-ms-meta-name:value İsteğe bağlı. Blobla ilişkilendirilmiş kullanıcı tanımlı ad/değer çiftini belirtir. Ad/değer çifti belirtilmezse, işlem meta verileri kaynak blobdan veya dosyadan hedef bloba kopyalar. Bir veya daha fazla ad/değer çifti belirtilirse, hedef blob belirtilen meta verilerle oluşturulur ve meta veriler kaynak blobdan veya dosyadan kopyalanmaz.

2009-09-19 sürümünden başlayarak, meta veri adları C# tanımlayıcıları için adlandırma kurallarına uymalıdır. Daha fazla bilgi için bkz . Kapsayıcıları, blobları ve meta verileri adlandırma ve buna başvurma.
x-ms-encryption-scope İsteğe bağlı. İstek içeriğini şifrelemek için şifreleme kapsamını gösterir. Bu üst bilgi 2020-12-06 ve sonraki sürümlerde desteklenir.
x-ms-tags İsteğe bağlı. Blobda sorgu dizesi kodlanmış etiketlerini ayarlar. Etiketler kopyalama kaynağından kopyalanmaz. Daha fazla bilgi için bkz. Açıklamalar. 2019-12-12 ve sonraki sürümlerde desteklenir.
x-ms-copy-source-tag-option İsteğe bağlı. Olası değerler ve COPY (büyük/küçük harfe duyarlı) değerleridirREPLACE. REPLACE varsayılan değerdir.

belirtilirse COPY , kaynak blobdaki etiketler hedef bloba kopyalanır. Kaynak blob özel olmalı ve isteğin kaynak blobda Blob Etiketlerini Alma işlemine ve hedef blobda Blob Etiketlerini Ayarla işlemine izni olmalıdır. Bu, kaynak hesaptaki işleme ek bir çağrıya Get Blob Tags neden olabilir.

REPLACE , üst bilginin hedef blobda belirttiği etiketleri x-ms-tags ayarlar. Etiket belirtilip x-ms-tagsREPLACE belirtilmiyorsa, hedef blobda hiçbir etiket ayarlanamaz. ve x-ms-tags belirtilmesi COPY 409 (Çakışma) hatasına neden olur.

2021-04-10 ve sonraki sürümlerde desteklenir.
x-ms-source-if-modified-since İsteğe bağlı. Bir DateTime değer. Blobu kopyalamak için yalnızca kaynak blob belirtilen tarih/saatten sonra değiştirilmişse bu koşullu üst bilgiyi belirtin. Kaynak blob değiştirilmediyse, Blob Depolama 412 (Önkoşul Başarısız) durum kodunu döndürür. Kaynak bir Azure dosyasıysa bu üst bilgiyi belirtemezsiniz.
x-ms-source-if-unmodified-since İsteğe bağlı. Bir DateTime değer. Blobu kopyalamak için bu koşullu üst bilgiyi yalnızca kaynak blob belirtilen tarih/saatten sonra değiştirilmediyse belirtin. Kaynak blob değiştirildiyse, Blob Depolama 412 durum kodunu döndürür (Önkoşul Başarısız oldu). Kaynak bir Azure dosyasıysa bu üst bilgiyi belirtemezsiniz.
x-ms-source-if-match İsteğe bağlı. Bir ETag değer. Kaynak blobu yalnızca değeri belirtilen değerle eşleşiyorsa ETag kopyalamak için bu koşullu üst bilgiyi belirtin. Değerler eşleşmiyorsa, Blob Depolama 412 durum kodunu döndürür (Önkoşul Başarısız oldu). Kaynak bir Azure dosyasıysa bu üst bilgiyi belirtemezsiniz.
x-ms-source-if-none-match İsteğe bağlı. Bir ETag değer. Blobu yalnızca ETag değeri belirtilen değerle eşleşmiyorsa kopyalamak için bu koşullu üst bilgiyi belirtin. Değerler aynıysa, Blob Depolama 412 (Önkoşul Başarısız) durum kodunu döndürür. Kaynak bir Azure dosyasıysa bu üst bilgiyi belirtemezsiniz.
If-Modified-Since İsteğe bağlı. Bir DateTime değer. Blobu kopyalamak için yalnızca hedef blob belirtilen tarih/saatten sonra değiştirilmişse bu koşullu üst bilgiyi belirtin. Hedef blob değiştirilmediyse, Blob Depolama 412 durum kodunu döndürür (Önkoşul Başarısız oldu).
If-Unmodified-Since İsteğe bağlı. Bir DateTime değer. Blobu kopyalamak için yalnızca hedef blob belirtilen tarih/saatten sonra değiştirilmediyse bu koşullu üst bilgiyi belirtin. Hedef blob değiştirildiyse, Blob Depolama 412 durum kodunu döndürür (Önkoşul Başarısız oldu).
If-Match İsteğe bağlı. Bir ETag değer. Blobu kopyalamak için bu koşullu üst bilgi için bir ETag değer belirtin, ancak belirtilen ETag değer mevcut bir hedef blob için değerle ETag eşleşiyorsa. Değerler eşleşmiyorsa, Blob Depolama 412 durum kodunu döndürür (Önkoşul Başarısız oldu).
If-None-Match İsteğe bağlı. Bir ETag değer veya (*) joker karakteri.

Yalnızca belirtilen ETag değer hedef blob için değerle eşleşmiyorsa ETag blobu kopyalamak için bu koşullu üst bilgi için bir ETag değer belirtin.

İşlemi yalnızca hedef blob yoksa gerçekleştirmek için joker karakteri (*) belirtin.

Belirtilen koşul karşılanmazsa, Blob Depolama 412 durum kodunu döndürür (Önkoşul Başarısız oldu).
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 olmalıdır veya paylaşılan erişim imzası aracılığıyla yetkilendirilmelidir. Kaynak blob genel ise, işlemi gerçekleştirmek için yetkilendirme gerekmez. Kaynak blobun boyutu 256 MiB'den büyükse istek 409 (Çakışma) hatasıyla başarısız olur. Kaynak blobun blob türü blok blobu olmalıdır. 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 şema taşıyıcı desteklenir.
Bu üst bilgi 2020-10-02 ve sonraki sürümlerde desteklenir.
x-ms-requires-sync:true Gereklidir. Bunun zaman uyumsuz Copy Blob From URL işlem yerine zaman uyumlu Copy Blob bir işlem olduğunu gösterir.
x-ms-source-content-md5 İsteğe bağlı. URI'den blob içeriğinin MD5 karması belirtir. Bu karma, verilerin URI'den taşınması sırasında blobun 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.

MD5 karması blobla birlikte depolanmaz.

İki karma eşleşmezse işlem 400 (Hatalı İstek) hata koduyla başarısız olur.
x-ms-lease-id:<ID> Hedef blob etkin bir kiraya sahipse gereklidir. Bu üst bilgi için belirtilen kira kimliği, hedef blobun kira kimliğiyle eşleşmelidir. İstek kira kimliğini içermiyorsa veya geçerli değilse işlem 412 durum koduyla başarısız olur (Önkoşul Başarısız oldu).

Bu üst bilgi belirtilirse ve hedef blob şu anda etkin bir kiraya sahip değilse, işlem 412 durum koduyla başarısız olur (Önkoşul Başarısız Oldu).

Sürüm 2012-02-12 ve sonraki sürümlerde, bu değer kiralanmış blob için etkin, sonsuz bir kira belirtmelidir. Sonlu süreli kiralama kimliği 412 durum koduyla başarısız oluyor (Önkoşul Başarısız oldu).
x-ms-client-request-id İsteğe bağlı. Günlüğe kaydetme yapılandırılırken günlüklere kaydedilen 1 KiB karakter sınırına sahip 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.
x-ms-access-tier İsteğe bağlı. Hedef blobda ayarlanacak katmanı belirtir. Bu üst bilgi, premium hesapta yalnızca 2017-04-17 ve üzeri sürüme sahip sayfa bloblarına yöneliktir. Desteklenen katmanların tam listesi için bkz. Vm'ler için yüksek performanslı premium depolama ve yönetilen diskler. Bu üst bilgi, blok blobları için 2018-11-09 ve sonraki sürümlerde desteklenir. Blok blobu katmanlama, Blob Depolama veya Genel Amaçlı v2 hesaplarında desteklenir. Geçerli değerler Hot, Cool, Cold veya Archive değerleridir. Not:Cold katman, sürüm 2021-12-02 ve üzeri için desteklenir. Blok blobu katmanlama hakkında ayrıntılı bilgi için bkz . Sık erişimli, seyrek erişimli ve arşiv depolama katmanları.

İstek gövdesi

Yok.

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 202 (Kabul Edildi) durum kodunu döndürür.

Durum kodları hakkında 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
ETag Kopyalama tamamlandıysa, hedef blobun değerini içerir ETag . Kopya tamamlanmazsa, kopyanın ETag başında oluşturulan boş blobun değerini içerir.

Değer ETag tırnak işaretleri içindedir.
Last-Modified Hedef bloba kopyalama işleminin bittiği tarihi/saati döndürür.
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar. İsteğ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ünü gösterir.
Date Hizmetin yanıtı gönderdiği saati gösteren utc tarih/saat değeri.
x-ms-copy-id: <id> Bu kopyalama işleminin dize tanımlayıcısı.
x-ms-copy-status: <success> Kopyalama işleminin durumunu gösterir. değeri success , işlemin başarıyla tamamlandığını gösterir.
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 en fazla 1.024 görünür ASCII karakteriyse üst bilginin değerine x-ms-client-request-id eşittir. İstekte x-ms-client-request-id üst bilgi yoksa, yanıtta bu üst bilgi mevcut olmaz.
x-ms-request-server-encrypted: true/false true İsteğin içeriğinin belirtilen algoritma aracılığıyla başarıyla şifrelenip şifrelenmediğini olarak ayarlayın. Aksi takdirde, değeri olur false.
x-ms-encryption-scope İstek bir şifreleme kapsamı kullandıysa döndürülür; böylece istemci, isteğin içeriğinin şifreleme kapsamı aracılığıyla başarıyla şifrelenmesini sağlayabilir.

Yanıt gövdesi

Yok.

Örnek yanıt

Aşağıda blob kopyalama isteği için örnek bir yanıt verilmiştir:

Response Status:  
HTTP/1.1 202 Accepted  
  
Response Headers:   
Last-Modified: <date>   
ETag: "0x8CEB669D794AFE2"  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402  
x-ms-version: 2018-03-28  
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-copy-status: success  
Date: <date>  
  

Yetkilendirme

Azure Depolama'da herhangi bir veri erişimi işlemi çağrılırken yetkilendirme gereklidir. Aşağıdaki tabloda, bir Copy Blob From URL işlemin hedef ve kaynak nesnelerinin nasıl yetkilendirilebileceği açıklanmaktadır:

Nesne türü Microsoft Entra ID yetkilendirme Paylaşılan Erişim İmzası (SAS) yetkilendirmesi Paylaşılan Anahtar yetkilendirmesi (veya Paylaşılan Anahtar Lite)
Hedef blok blobu Yes Yes Yes
Aynı depolama hesabında kaynak blok blobu Yes Yes Yes
Başka bir depolama hesabında kaynak blok blobu Hayır Yes Hayır

İstek, istek üst bilgisinde x-ms-tags etiketleri belirtiyorsa, çağıranın Blob Etiketlerini Ayarla işleminin yetkilendirme gereksinimlerini karşılaması gerekir.

İşlemi aşağıda açıklandığı gibi yetki Copy Blob From URL verebilirsiniz. Farklı bir depolama hesabındaki bir kaynak bloba, SAS belirteci aracılığıyla Okuma (r) izniyle ayrı olarak yetkilendirilmelidir. Kaynak blob yetkilendirmesi hakkında daha fazla bilgi için, istek üst bilgisinin x-ms-copy-sourceayrıntılarına bakın.

Ö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 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, yönetilen kimlik veya hizmet sorumlusunun işlemi çağırması Copy Blob From URL için gereken RBAC eylemi ve bu eylemi içeren en az ayrıcalıklı yerleşik Azure RBAC rolü verilmiştir:

Hedef blob

Aynı depolama hesabı içindeki kaynak blob

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

Bir işlemin kaynak ve hedef blobu Copy Blob From URL bir blok blobu olmalıdır.

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

İşlem Copy Blob From URL her zaman kaynak blob'un tamamını kopyalar. Bayt aralığı veya blok kümesi kopyalama desteklenmez.

Kaynak blobu farklı bir ada sahip bir hedef bloba kopyalayabilirsiniz. Hedef blob mevcut bir blok blobu veya kopyalama işleminin oluşturduğu yeni bir blob olabilir.

Blok blobundan kopyalarken, işlenen tüm bloklar ve blok kimlikleri kopyalanır. Kaydedilmemiş bloklar kopyalanmaz. Kopyalama işleminin sonunda hedef blob, kaynakla aynı kaydedilmiş blok sayısına sahip olur.

İşlem ETag başlatıldığında ve işlem tamamlandığında blok blobunun Copy Blob From URL değeri değişir.

Blob özelliklerini ve meta verilerini kopyalama

Bir blok blobu kopyalandığında, aşağıdaki sistem özellikleri hedef bloba aynı değerlerle kopyalanır:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

Kaynak blob'un kaydedilmiş blok listesi de hedef bloba kopyalanır. Kaydedilmemiş bloklar kopyalanmaz.

Hedef blob her zaman kaynak blobla aynı boyutta olduğundan, hedef blobun üst bilgisinin Content-Length değeri kaynak blob için bu üst bilginin değeriyle eşleşir.

x-ms-tags Üst bilgi hedef blob için etiketler sağlıyorsa, bunların sorgu dizesi kodlanmış olması gerekir. Etiket anahtarları ve değerleri , Blob Etiketlerini Ayarla işleminde belirtilen adlandırma ve uzunluk gereksinimlerine uygun olmalıdır.

Üst x-ms-tags bilgi en fazla 2 kilobit etiket içerebilir. Daha fazla etikete ihtiyacınız varsa işlemini kullanın Set Blob Tags .

x-ms-tags Üst bilgi etiketleri sağlamıyorsa, etiketler kaynak blobdan kopyalanır.

Kiralanan blobu kopyalama

İşlem Copy Blob From URL yalnızca kaynak blobdan okur, bu nedenle kaynak blobun kira durumu önemli değildir.

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 ü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 istekler için Copy Blob From URL faturalama kategorisi gösterilmektedir:

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

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

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

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

Kaynak blobu aynı hesap içinde farklı bir ada sahip bir hedef bloba kopyaladığınızda, yeni blob için ek depolama kaynakları kullanırsınız. Kopyalama işlemi daha sonra bu ek kaynaklar için depolama hesabının kapasite kullanımına karşı ücretlendirilir.

Ayrıca bkz.

Azure Depolama'ya yönelik istekleri yetkilendirme
Durum ve hata kodları
Blob Depolama hata kodları
Anlık görüntülerin ücret tahakkuk etme şeklini anlama