Aracılığıyla paylaş


Blob Kopyala

İşlem Copy Blob , bir blobu depolama hesabı içindeki bir hedefe kopyalar.

Sürüm 2012-02-12 ve sonraki sürümlerde, bir Copy Blob işlemin kaynağı herhangi bir Azure depolama hesabında kaydedilmiş bir blob olabilir.

2015-02-21 sürümünden başlayarak, bir işlemin kaynağı herhangi bir Copy Blob Azure depolama hesabındaki bir Azure dosyası olabilir.

Uyarı

Yalnızca 7 Haziran 2012'de veya sonrasında oluşturulan depolama hesapları, işlemin başka bir depolama hesabından kopyalanmasına izin verir Copy Blob .

İstek

Copy Blob isteğini aşağıdaki gibi oluşturabilirsiniz. HTTPS'nin kullanılması önerilir. myaccount değerini depolama hesabınızın adıyla, mycontainer kapsayıcınızın adıyla ve myblob değerini hedef blobunuzun adıyla değiştirin.

2013-08-15 sürümünden başlayarak, kaynak blob ile aynı hesapta olması durumunda hedef blob için paylaşılan bir erişim imzası (SAS) belirtebilirsiniz. 2015-04-05 sürümünden başlayarak, farklı bir depolama hesabındaysa hedef blob için paylaşılan bir erişim imzası da belirtebilirsiniz.

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

Öykünülmüş depolama hizmeti için URI

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

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

İstek başlıkları

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadı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. Daha fazla bilgi için bkz . Azure Depolama hizmetleri için sürüm oluşturma.
x-ms-meta-name:value Opsiyonel. Blob ile ilişkilendirilmiş kullanıcı tanımlı bir ad/değer çifti belirtir. Herhangi bir 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 blob veya dosyadan kopyalanmaz.

2009-09-19 sürümünden itibaren, meta veri adlarının C# tanımlayıcıları için adlandırma kurallarına uyması gerekir. Daha fazla bilgi için bkz: Kapsayıcıları, blobları ve meta verileri adlandırma ve bunlara başvurma.
x-ms-tags Opsiyonel. Blob üzerinde verilen sorgu dizesi ile kodlanmış etiketleri 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-source-if-modified-since Opsiyonel. Bir DateTime değer. Blobu kopyalamak için bu koşullu üst bilgiyi yalnızca kaynak blob belirtilen tarih/saatten bu yana değiştirilmişse belirtin. Kaynak blob değiştirilmediyse, Blob Depolama 412 (Önkoşul Başarısız Oldu) durum kodunu döndürür. Kaynak bir Azure dosyasıysa bu üst bilgiyi belirtemezsiniz.
x-ms-source-if-unmodified-since Opsiyonel. Bir DateTime değer. Blobu kopyalamak için bu koşullu üst bilgiyi yalnızca kaynak blob belirtilen tarih/saatten bu yana değiştirilmemişse belirtin. Kaynak blob değiştirildiyse 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-match Opsiyonel. Bir ETag değer. Kaynak blobu yalnızca değeri belirtilen değerle eşleştiğinde ETag kopyalamak için bu koşullu üst bilgiyi belirtin. Değerler eşleşmezse Blob Depolama 412 (Önkoşul Başarısız Oldu) durum kodunu döndürür. Kaynak bir Azure dosyasıysa bu üst bilgiyi belirtemezsiniz.
x-ms-source-if-none-match Opsiyonel. Bir ETag değer. Blobu yalnızca değeri belirtilen değerle eşleşmiyorsa ETag 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 Opsiyonel. Bir DateTime değer. Blobu kopyalamak için bu koşullu üst bilgiyi belirtin, ancak hedef blob belirtilen tarih/saatten sonra değiştirilmişse. Hedef blob değiştirilmediyse Blob Depolama 412 (Önkoşul Başarısız Oldu) durum kodunu döndürür.
If-Unmodified-Since Opsiyonel. Bir DateTime değer. Blobu kopyalamak için bu koşullu üst bilgiyi belirtin, ancak hedef blob belirtilen tarih/saatten sonra değiştirilmediyse. Hedef blob değiştirildiyse, Blob Depolama durum kodu 412'yi döndürür (Önkoşul Başarısız oldu).
If-Match Opsiyonel. Bir ETag değer. Yalnızca belirtilen ETag değer mevcut bir hedef blobun değeriyle eşleşiyorsa ETag blobu kopyalamak için bu koşullu üst bilgi için bir ETag değer belirtin. Değerler eşleşmezse Blob Depolama 412 (Önkoşul Başarısız Oldu) durum kodunu döndürür.
If-None-Match Opsiyonel. Bir ETag değer veya joker karakter (*).

Yalnızca belirtilen ETag değer hedef blobun değeriyle ETag eşleşmiyorsa 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 (Önkoşul Başarısız) durum kodunu döndürür.
x-ms-copy-source:name Gerekli. Kaynak blob veya dosyanın adını belirtir.

2012-02-12 sürümünden başlayarak, bu değer blob belirten en fazla 2 kibibayt (KiB) uzunluğunda bir URL olabilir. Değer, bir istek URI'sinde göründüğü gibi URL ile kodlanmalıdır.

Aynı depolama hesabındaki bir kaynak blob üzerinde okuma işlemi, paylaşılan anahtar aracılığıyla yetkilendirilebilir. 2017-11-09 sürümünden başlayarak, kaynak blobda okuma işlemini yetkilendirmek için Microsoft Entra Kimliği'ni de kullanabilirsiniz. Ancak, kaynak başka bir depolama hesabındaki bir blobsa, kaynak blobun genel olması veya buna erişimin paylaşılan bir erişim imzası aracılığıyla yetkilendirilmesi gerekir. Kaynak blob herkese açıksa, kopyalama işlemini gerçekleştirmek için yetkilendirme gerekmez.

2015-02-21 sürümünden başlayarak, kaynak nesne Azure Dosyalar'da bir dosya olabilir. Kaynak nesne bir bloba kopyalanacak bir dosyaysa, kaynak dosyanın aynı hesapta veya farklı bir hesapta bulunup bulunmadığına bakılmaksızın paylaşılan bir erişim imzası aracılığıyla yetkilendirilmesi gerekir.

Yalnızca 7 Haziran 2012'de veya sonrasında oluşturulan depolama hesapları, işlemin başka bir depolama hesabından kopyalanmasına izin verir Copy Blob .

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>

Kaynak nesne Azure Dosyalar'da bir dosya olduğunda, kaynak URL aşağıdaki biçimi kullanır. URL'nin dosya için geçerli bir SAS belirteci içermesi gerektiğini unutmayın.

- https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sastoken

2012-02-12'den önceki sürümlerde bloblar yalnızca aynı hesap içinde kopyalanabilir ve kaynak adı şu biçimleri kullanabilir:

- Adlandırılmış kapsayıcıdaki blob: /accountName/containerName/blobName
- Adlandırılmış kapsayıcıdaki anlık görüntü: /accountName/containerName/blobName?snapshot=<DateTime>
- Kök kapsayıcıdaki blob: /accountName/blobName
- Kök kapsayıcıdaki anlık görüntü: /accountName/blobName?snapshot=<DateTime>
x-ms-lease-id:<ID> Hedef blobun etkin bir kirası varsa 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 kimlik 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 blobun şu anda etkin bir kirası yoksa, işlem 412 (Önkoşul Başarısız Oldu) durum koduyla başarısız olur.

Sürüm 2012-02-12 ve sonraki sürümlerde, bu değerin kiralanan bir blob için etkin bir sonsuz kira belirtmesi gerekir. Sınırlı süreli kira kimliği 412 (Önkoşul Başarısız) durum koduyla başarısız olur.
x-ms-source-lease-id: <ID> 2012-02-12'den önceki sürümler için isteğe bağlıdır (2012-02-12 ve sonraki sürümlerde desteklenmez). İşlemi Copy Blob yalnızca sağlanan kira kimliği kaynak blobun etkin kira kimliğiyle eşleşiyorsa gerçekleştirmek için bu üst bilgiyi belirtin.

Bu üst bilgi belirtilirse ve kaynak blobun şu anda etkin bir kirası yoksa, işlem 412 (Önkoşul Başarısız Oldu) durum koduyla başarısız olur.
x-ms-client-request-id Opsiyonel. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 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.
x-ms-access-tier Opsiyonel. Hedef blob üzerinde ayarlanacak katmanı belirtir. Bu üst bilgi, yalnızca 2017-04-17 ve sonraki sürümlere sahip premium hesaptaki sayfa blobları içindir. 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 şunlardır: Hot, Cool, Cold ve Archive. 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ı.
x-ms-rehydrate-priority Opsiyonel. Arşivlenmiş blobu yeniden doldurma önceliğini gösterir. Bu üst bilgi, blok blobları için 2019-02-02 ve sonraki sürümlerde desteklenir. Geçerli değerler: High ve Standard. Bir blob üzerinde önceliği yalnızca bir kez ayarlayabilirsiniz. Bu üst bilgi, aynı bloba yapılan sonraki isteklerde yoksayılır. Bu başlık olmadan varsayılan öncelik şudur: Standard.
x-ms-seal-blob Opsiyonel. 2019-12-12 veya sonraki sürümlerde desteklenir. Bu üst bilgi yalnızca ekleme blobları için geçerlidir. Kopyalama işlemi tamamlandıktan sonra hedef blobu mühürler.
x-ms-immutability-policy-until-date Sürüm 2020-06-12 ve üzeri. Blob üzerinde ayarlanacak bekletme tarihini belirtir. Bu, blobun değiştirilmeye veya silinmeye karşı korunabileceği tarihtir. RFC1123 formatı takip eder.
x-ms-immutability-policy-mode Sürüm 2020-06-12 ve üzeri. Blob üzerinde ayarlanacak değişmezlik ilkesi modunu belirtir. Geçerli değerler: unlocked ve locked. Bir unlocked değer, kullanıcının saklama tarihini artırarak veya azaltarak ilkeyi değiştirebileceğini gösterir. Bir locked değer, bu eylemlerin yasak olduğunu gösterir.
x-ms-legal-hold Sürüm 2020-06-12 ve üzeri. Blob üzerinde ayarlanacak yasal saklamayı belirtir. Geçerli değerler: true ve false.

Bu işlem, x-ms-if-tags ve x-ms-source-if-tags koşullu üst bilgilerinin yalnızca belirtilen koşul karşılandığında başarılı olmasını destekler. Daha fazla bilgi için bkz. Blob Depolama işlemleri için koşullu üst bilgileri belirtme.

İstek içeriği

Yok.

Yanıt

Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir.

Durum kodu

2012-02-12 ve sonraki sürümlerde, başarılı bir işlem 202 (Kabul Edildi) durum kodunu döndürür.

2012-02-12'den önceki sürümlerde, 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 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
ETag Sürüm 2012-02-12 ve sonraki sürümlerde, kopyalama tamamlanırsa, bu üst bilgi hedef blobun değerini içerir ETag . Kopyalama tamamlanmazsa üst bilgi, kopyalama işleminin başlangıcında oluşturulan boş blobun değerini içerir ETag .

2012-02-12 öncesi sürümlerde, bu üst bilgi hedef blobun değerini döndürür ETag .

2011-08-18 ve sonraki sürümlerde değer tırnak işaretleri ETag içindedir.
Last-Modified Hedef bloba kopyalama işleminin tamamlandığı tarihi/saati döndürür.
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar. İstekle ilgili sorunları gidermek için bu üst bilgiyi 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ünü gösterir. Bu üst bilgi, 2009-09-19 ve sonraki sürümlerde yapılan istekler için döndürülür.
Date Hizmetin yanıtı gönderdiği saati gösteren UTC tarih/saat değeri.
x-ms-copy-id: <id> Sürüm 2012-02-12 ve üzeri. Bu kopyalama işlemi için bir dize tanımlayıcısı sağlar. Bu kopyalama işleminin durumunu denetlemek için Get Blob veya Get Blob Properties ile kullanın ya da bekleyen kopyalama işlemini iptal etmek için Abort Copy Blob geçirin.
x-ms-copy-status: <success ¦ pending> Sürüm 2012-02-12 ve üzeri. Kopyalama işleminin durumunu şu değerlerle gösterir:

- success: İşlem başarıyla tamamlandı.
- pending: İşlem devam ediyor.
x-ms-version-id: <DateTime> Sürüm 2019-12-12 ve üzeri. Blobu sürümüne göre benzersiz bir şekilde tanımlar. Blobun bu sürümüne erişmek için sonraki isteklerde bu opak değeri kullanabilirsiniz.
x-ms-client-request-id İsteklerde ve ilgili yanıtlarda sorun gidermek için kullanılabilir. bu üst bilginin değeri, istekte varsa ve değer en fazla 1.024 görünür ASCII karakteriyse, x-ms-client-request-id üst bilgisinin değerine eşittir. İstekte x-ms-client-request-id üst bilgisi yoksa, bu üst bilgi yanıtta mevcut olmaz.

Yanıtın içeriği

Yok.

Örnek yanıt

Aşağıdaki kod, bir blob kopyalama isteği için örnek bir yanıttır:

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: 2015-02-21  
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-copy-status: pending
x-ms-version-id: <DateTime>  
Date: <date>  
  

İzin

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

Nesne türü Microsoft Entra Kimliği yetkilendirmesi Paylaşılan Erişim İmzası (SAS) yetkilendirmesi Paylaşılan Anahtar yetkilendirmesi (veya Shared Key Lite)
Hedef blob Evet Evet Evet
Aynı depolama hesabındaki kaynak blob Evet Evet Evet
Başka bir depolama hesabındaki kaynak blob Hayı Evet Hayı

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

aşağıda açıklandığı gibi Copy Blob işlemini yetkileyebilirsiniz. Farklı bir depolama hesabındaki kaynak blobun Okuma (r) iznine sahip SAS belirteci aracılığıyla ayrı olarak yetkilendirilmesi gerektiğini unutmayın. 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 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 Copy Blob 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:

Hedef blob

Aynı depolama hesabındaki 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

Sürüm 2012-02-12 ve sonraki Copy Blob sürümlerde işlem zaman uyumsuz olarak tamamlanabilir. Bu işlem, kopyalama işlemini denetlemek veya iptal etmek için kullanabileceğiniz bir kopyalama kimliği döndürür. Kopyalama işleminin zaman uyumsuz yapısı nedeniyle, Blob Depolama blobları en iyi çaba temelinde kopyalar. Blob hizmeti, sunucu kaynakları diğer görevler tarafından kullanılmadığında blobları kopyalar, bu nedenle kopyanın hemen başlaması veya belirli bir zaman diliminde tamamlanması garanti edilmez.

Kopyalama işlemi için kaynak blob bir blok blobu, ekleme blobu, sayfa blobu veya anlık görüntü olabilir. Hedef blob zaten varsa, kaynak blob ile aynı blob türünde olmalıdır. Var olan tüm hedef blobların üzerine yazılır. Kopyalama işlemi devam ederken hedef blobu değiştiremezsiniz.

Sürüm 2015-02-21 ve sonraki sürümlerde, kopyalama işleminin kaynağı Azure Dosyalar'daki bir dosya da olabilir. Kaynak bir dosyaysa, hedefin bir blok blobu olması gerekir.

Bir hesapta bekleyen Copy Blob birden fazla işlem sırayla işlenebilir. Hedef blob yalnızca bir bekleyen Copy Blob işleme sahip olabilir. Başka bir deyişle, bir blob birden çok bekleyen Copy Blob işlem için hedef olamaz. Bir blobu zaten bekleyen bir kopyalama işlemi olan bir hedef bloba kopyalama girişimi 409 (Çakışma) durum koduyla başarısız olur.

Yalnızca 7 Haziran 2012'de veya sonrasında oluşturulan depolama hesapları, işlemin başka bir depolama hesabından kopyalanmasına izin verir Copy Blob . Başka bir depolama hesabından 7 Haziran 2012'den önce oluşturulan bir hesaba kopyalama girişimi 400 (Hatalı İstek) durum koduyla başarısız olur.

Copy Blob işlemi her zaman kaynak blob veya dosyanın tamamını kopyalar. Bayt aralığını veya blok kümesini kopyalama desteklenmez.

Bir Copy Blob işlem aşağıdaki biçimlerden herhangi birini alabilir:

  • Bir kaynak blobu farklı bir ada sahip bir hedef bloba kopyalayabilirsiniz. Hedef blob, aynı blob türüne (blok, ekleme veya sayfa) sahip mevcut bir blob olabilir veya kopyalama işleminin oluşturduğu yeni bir blob olabilir.

  • Bir kaynak blobu aynı ada sahip bir hedef bloba kopyalayabilir ve hedef blobu etkin bir şekilde değiştirebilirsiniz. Bu tür bir kopyalama işlemi, kaydedilmemiş blokları kaldırır ve blobun meta verilerinin üzerine yazar.

  • Azure Dosyalar'daki bir kaynak dosyayı hedef bloba kopyalayabilirsiniz. Hedef blob mevcut bir blok blobu olabilir veya kopyalama işleminin oluşturduğu yeni bir blok blobu olabilir. Dosyalardan sayfa bloblarına veya ekleme bloblarına kopyalama desteklenmez.

  • Bir anlık görüntüyü temel blobu üzerine kopyalayabilirsiniz. Anlık görüntüyü temel blobun konumuna yükseltme yoluyla blobun önceki bir sürümünü geri yükleyebilirsiniz.

  • Anlık görüntüyü farklı bir ada sahip bir hedef bloba kopyalayabilirsiniz. Sonuçta elde edilen hedef blob, anlık görüntü değil yazılabilir bir blobdur.

Bir sayfa blobundan kopyalarken Blob Depolama, kaynak blobun uzunluğunda bir hedef sayfa blobu oluşturur. Başlangıçta, sayfa blobu tüm sıfırları içerir. Daha sonra kaynak sayfa aralıkları numaralandırılır ve boş olmayan aralıklar kopyalanır.

Blok blobu veya ekleme blobu için Blob Depolama, bu işlemden dönmeden önce sıfır uzunlukta kaydedilmiş bir blob oluşturur.

Bir blok blobundan kopyalarken, işlenen tüm bloklar ve blok kimlikleri kopyalanır. İşlenmemiş bloklar kopyalanmaz. Kopyalama işleminin sonunda, hedef blob kaynakla aynı kaydedilmiş blok sayısına sahiptir.

Ekleme blobundan kopyalarken, işlenen tüm bloklar kopyalanır. Kopyalama işleminin sonunda, hedef blob kaynak blob ile aynı sayıda veya daha az sayıda kaydedilmiş blok olacaktır.

Tüm blob türleri için, kopyalama işleminin durumunu denetlemek için hedef blob'u çağırabilir Get Blob veya Get Blob Properties üzerinde yapabilirsiniz. Kopyalama işlemi tamamlandığında son blob işlenir.

Kopyalama işleminin kaynağı değerler sağladığında ETag , kopyalama işlemi devam ederken kaynakta yapılan herhangi bir değişiklik bu işlemin başarısız olmasına neden olur. Kopyalama devam ederken hedef blobu değiştirme girişimi 409 (Çakışma) durum koduyla başarısız olur. Hedef blobun sonsuz bir kirası varsa, kira kimliğinin öğesine Copy Blobgeçirilmesi gerekir. Sınırlı süreli kiralamalara izin verilmez.

Blok ETag blobunun değeri, işlem başladığında ve işlem bittiğinde değişir Copy Blob . ETag İşlem başladığında sayfa blobunun değeri değişir Copy Blob ve kopyalama işlemi sırasında sık sık değişmeye devam eder. Blok blobunun içeriği yalnızca tam kopyalama işlemi tamamlandıktan sonra bir Get komut aracılığıyla görünür.

Blob özelliklerini, etiketlerini ve meta verileri kopyalama

Bir blob kopyalandığında, aşağıdaki sistem özellikleri aynı değerlere sahip hedef bloba kopyalanır:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

  • x-ms-blob-sequence-number (yalnızca sayfa blobları için)

  • x-ms-committed-block-count (yalnızca blob eklemek için ve yalnızca 2015-02-21 sürümü için)

Blob bir blok blobu ise, kaynak blobun işlenen blok listesi de hedef bloba kopyalanır. İşlenmemiş bloklar kopyalanmaz.

Hedef blob her zaman kaynak blob ile aynı boyuttadır. Hedef blob için üst bilginin değeri Content-Length , kaynak blob için bu üst bilginin değeriyle eşleşir.

Kaynak blob ve hedef blob aynı olduğunda, Copy Blob kaydedilmemiş tüm blokları kaldırır. Bu durumda meta veriler belirtilirse, mevcut meta verilerin üzerine yeni meta veriler yazılır.

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

Başlık x-ms-tags en fazla 2 kilobit etiket içerebilir. Daha fazla etikete Set Blob Tags ihtiyacınız varsa, işlemi kullanın.

Üst bilgi x-ms-tags etiket sağlamıyorsa, etiketler kaynak blobdan kopyalanmaz.

Kiralanmış bir blobu kopyalama

İşlem Copy Blob yalnızca kaynak blobdan okur, bu nedenle kaynak blobun kira durumu önemli değildir. Ancak işlem, Copy Blob kopyalama işlemi başladığında kaynak blobun değerini kaydeder ETag . Kopyalama işlemi tamamlanmadan önce ETag değeri değişirse işlem başarısız olur. Kopyalama işlemi sırasında kaynak blob kiralayarak kaynak blobda değişiklik yapılmasını önleyebilirsiniz.

Hedef blobun etkin bir sonsuz kirası varsa, işlem çağrısında kira kimliğini belirtmeniz Copy Blob gerekir. Belirttiğiniz kira etkin bir sonlu süreli kira ise, bu çağrı 412 (Önkoşul Başarısız) durum koduyla başarısız olur. Kopyalama işlemi beklemedeyken, hedef blob üzerindeki tüm kiralama işlemleri 409 (Çakışma) durum koduyla başarısız olur. Kaynak üzerinden farklı bir ada sahip bir hedef bloba kopyalarken, kaynakla aynı ada sahip bir hedef bloba kopyalarken veya temel blob üzerinde bir anlık görüntü yükseltirken kopyalama işlemi sırasında hedef blob üzerinde sonsuz bir kiralama bu şekilde kilitlenir.

İstemci henüz var olmayan bir blob üzerinde bir kira kimliği belirtirse, Blob Depolama 2013-08-15 ve sonraki sürümlere karşı yapılan istekler için 412 (Önkoşul Başarısız Oldu) durum kodunu döndürür. Önceki sürümler için Blob Depolama 201 (Oluşturuldu) durum kodunu döndürür.

Blob anlık görüntülerini kopyalama

Bir kaynak blob kopyalandığında, kaynak blobun anlık görüntüleri veya sürümleri hedefe kopyalanmaz. Bir hedef blobun üzerine bir kopya yazıldığında, hedef blob ile ilişkili tüm anlık görüntüler veya sürümler adı altında olduğu gibi kalır.

Çevrimiçi katmanda (sık erişimli veya seyrek erişimli) olduğu sürece bir anlık görüntüyü temel blob üzerinden yükseltmek için bir kopyalama işlemi gerçekleştirebilirsiniz. Bu şekilde, bir blobun önceki bir sürümünü geri yükleyebilirsiniz. Anlık görüntü kalır, ancak hedefinin üzerine hem okunabilen hem de yazılabilen bir kopya yazılır.

Blob sürümlerini kopyalama

Çevrimiçi katmanda (sık erişimli veya seyrek erişimli) olduğu sürece bir sürümü temel blob üzerinden yükseltmek için bir kopyalama işlemi gerçekleştirebilirsiniz. Bu şekilde, bir blobun önceki bir sürümünü geri yükleyebilirsiniz. Sürüm kalır, ancak hedefinin üzerine hem okunabilen hem de yazılabilen bir kopya yazılır.

Arşivlenmiş bir blobu kopyalama

2018-11-09 sürümünden başlayarak, arşivlenmiş bir blobu aynı depolama hesabı içindeki yeni bir bloba kopyalayabilirsiniz. Kaynak blob arşiv katmanında kalır. Kaynak blob arşivlenmiş bir blob olduğunda, isteğin x-ms-access-tier hedef blobun katmanını gösteren üst bilgiyi içermesi gerekir. Hedef blob çevrimiçi bir katmanda olmalıdır. Arşiv katmanındaki bir bloba kopyalayamazsınız.

2021-02-12 sürümünden itibaren, hedef hesap kaynak hesapla aynı bölgede olduğu sürece arşivlenmiş bir blobu farklı bir depolama hesabındaki çevrimiçi katmana kopyalayabilirsiniz.

Kaynak blob yeniden sulandırılıyorsa istek başarısız olabilir.

Blok blobu düzeyinde katmanlama hakkında ayrıntılı bilgi için bkz. Sık erişimli, seyrek erişimli ve arşiv depolama katmanları.

Bekleyen bir kopyalama işlemiyle çalışma (sürüm 2012-02-12 ve üzeri)

Copy Blob İşlem zaman uyumsuz olarak tamamlanırsa, döndürülen durum koduna göre bir sonraki adımı belirlemek için aşağıdaki tabloyu kullanın:

Durum kodu Anlamı
202 (Kabul Edildi), x-ms-copy-status: success Kopyalama işlemi başarıyla tamamlandı.
202 (Kabul Edildi), x-ms-copy-status: beklemede Kopyalama işlemi tamamlanmadı. İşlem tamamlanana veya başarısız olana kadar üst bilgiyi incelemek x-ms-copy-status için kullanarak Get Blob Properties hedef blobu yoklayın.
4xx, 500 veya 503 Kopyalama işlemi başarısız oldu.

İşlem Copy Blob sırasında ve sonrasında, hedef blobun özellikleri işlemin kopya kimliğini Copy Blob ve kaynak blobun URL'sini içerir. İşlem tamamlandığında Blob Depolama, hedef blobun özelliklerine saat ve sonuç değerini (success, failedveya abortedveya) yazar. İşlemin failed bir sonucu varsa, x-ms-copy-status-description üst bilgisi bir hata ayrıntı dizesi içerir.

Bekleyen bir Copy Blob işlemi iki haftalık zaman aşımına sahiptir. İki hafta sonra tamamlanmayan bir kopyalama girişimi zaman aşımına uğrar ve alanı 500 ve değeri 500 (OperationCancelled) olarak ayarlanmış failedx-ms-copy-status-description boş bir blob x-ms-copy-status bırakır. Kopyalama işlemi sırasında oluşabilecek aralıklı, önemli olmayan hatalar işlemin ilerlemesini engelleyebilir ancak başarısız olmasına neden olmaz. Bu gibi durumlarda, x-ms-copy-status-description aralıklı hataları açıklar.

Kopyalama işlemi sırasında hedef blobu değiştirme veya anlık görüntü alma girişimleri, 409 (Çakışma), "Blob Kopyalama İşlemi Devam Ediyor" durum koduyla başarısız olur.

İşlemi Abort Copy Blob çağırırsanız bir x-ms-copy-status:aborted üst bilgi görürsünüz. Hedef blob bozulmamış meta verilere ve 0 baytlık bir blob uzunluğuna sahip olacaktır. Kopyalama işlemini yeniden denemek için Copy Blob özgün çağrıyı yineleyebilirsiniz.

Copy Blob İşlem zaman uyumlu olarak tamamlanırsa, kopyalama işleminin durumunu belirlemek için aşağıdaki tabloyu kullanın:

Durum kodu Anlamı
202 (Kabul Edildi), x-ms-copy-status: success Kopyalama işlemi başarıyla tamamlandı.
4xx, 500 veya 503 Kopyalama işlemi başarısız oldu.

Katman, premium depolama katmanları için devralınır. Blok blobları için, hedef blobun üzerine yazmak, sağlanmamışsa x-ms-access-tier sık erişimli veya seyrek erişimli katmanı hedeften devralır. Arşivlenmiş bir blobun üzerine yazma işlemi başarısız olur. Blok blobu düzeyinde katmanlama hakkında ayrıntılı bilgi için bkz. Sık erişimli, seyrek erişimli ve arşiv depolama katmanları.

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 Copy Blob istekleri için faturalama kategorisi gösterilmektedir:

Operasyon Depolama hesabı türü Faturalama kategorisi
Blob Kopyalama (hedef hesap1) Premium blok blobu
Standart Genel Amaçlı Versiyon 2
Standart Genel Amaçlı v1
Yazma işlemleri
Blob Kopyalama (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 nesne farklı bir hesapta olduğunda, kaynak hesap, kaynak nesneye yapılan her okuma isteği için bir işlem gerçekleştirir.

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

Hedef hesap ayrıca kopyalama işlemini iptal etmek (bkz. Blob Kopyalamayı İptal Etme) veya kopyalama işleminin durumunu denetlemek (bkz. Blob Al veya Blob Özelliklerini Al) için yapılan her istek için işlem maliyetlerine neden olur.

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

Bir 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 göre bir ücrete neden olur. Ancak, kaynak ve hedef blobların adları aynı hesap içinde aynıysa (örneğin, bir anlık görüntüyü temel blobuna yükselttiğinizde), 2012-02-12 ve sonraki sürümlerde depolanan ek kopya meta verileri dışında ek ücret uygulanmaz.

Bir anlık görüntüyü temel blobunu değiştirecek şekilde yükselttiğinizde, anlık görüntü ve temel blob aynı hale gelir. Blokları veya sayfaları paylaşırlar, bu nedenle kopyalama işlemi depolama hesabının kapasite kullanımına karşı ek bir ücrete neden olmaz. Ancak, bir anlık görüntüyü farklı bir ada sahip bir hedef bloba kopyalarsanız, bu işlem sonuçta elde edilen yeni blobun kullandığı depolama kaynakları için ek bir ücrete tabi olur. Farklı adlara sahip iki blob, aynı olsalar bile blokları veya sayfaları paylaşamaz. Anlık görüntü maliyet senaryoları hakkında daha fazla bilgi için bkz: Anlık görüntülerin ücretleri nasıl tahakkuk ettirdiğini anlama.

Ayrıca bakınız

azure depolama istekleri yetkilendirmeyi
Durum ve hata kodları
blob depolama hata kodları

Anlık görüntülerin nasıl ücret tahakkuk ettiğini anlama
Blob Kopyalamayı İptal Et