İkili Büyük Nesneyi Kopyalama

İşlem bir Copy Blob blobu depolama hesabındaki bir hedefe kopyalar.

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

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

Not

Yalnızca 7 Haziran 2012 veya sonrasında oluşturulan depolama hesapları, işlemin başka bir depolama hesabından Copy Blob kopyalanmasını sağlar.

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Copy Blob . 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.

2013-08-15 sürümünden başlayarak, kaynak blobla aynı hesaptaysa hedef blob için paylaşılan 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 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

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

Öykünülmüş depolama hizmetine yönelik istekte bulunmak için ö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'ya 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'ya istekleri 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. Hiç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 blobdan veya dosyadan kopyalanmaz.

Sürüm 2009-09-19'tan 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-tags İsteğe bağlı. Blob üzerinde verilen sorgu dizesi kodlanmış etiketlerini ayarlar. Etiketler kopyalama kaynağından kopyalanmaz. Daha fazla bilgi için bkz . Açıklamalar. Sürüm 2019-12-12 ve sonraki sürümlerde desteklenir.
x-ms-source-if-modified-since İsteğe bağlı. Bir DateTime değer. Blobu kopyalamak için bu koşullu üst bilgiyi belirtin; yalnızca kaynak blob belirtilen tarih/saatten sonra değiştirilmişse. Kaynak blob değiştirilmediyse, 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-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 (Ö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-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 bu koşullu üst bilgiyi belirtin; yalnızca hedef blob belirtilen tarih/saatten sonra değiştirilmişse. 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 bu koşullu üst bilgiyi belirtin; yalnızca hedef blob belirtilen tarih/saatten sonra değiştirilmediyse. 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 (Önkoşul Başarısız) durum kodunu döndürür.
If-None-Match İsteğe bağlı. Bir ETag değer veya joker karakter (*).

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

İşlemin yalnızca hedef blob yoksa gerçekleştirilmesi 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 veya dosyanın adını belirtir.

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

Aynı depolama hesabındaki bir kaynak blob üzerindeki 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 ID de kullanabilirsiniz. Ancak, kaynak başka bir depolama hesabındaki bir blobsa, kaynak blob genel olmalıdır veya bu bloba erişim paylaşılan erişim imzası aracılığıyla yetkilendirilmelidir. Kaynak blob genel ise kopyalama işlemini gerçekleştirmek için yetkilendirme gerekmez.

2015-02-21 sürümünden başlayarak, kaynak nesne Azure Dosyalar bir dosya olabilir. Kaynak nesne bloba kopyalanacak bir dosyaysa, kaynak dosyanın aynı hesapta veya farklı bir hesapta bulunması fark etmeksizin paylaşılan erişim imzası aracılığıyla yetkilendirilmiş olması gerekir.

Yalnızca 7 Haziran 2012 veya sonrasında oluşturulan depolama hesapları, işlemin başka bir depolama hesabından Copy Blob kopyalanmasını sağlar.

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>

Kaynak nesne Azure Dosyalar 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 öncesi 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ıda anlık görüntü: /accountName/containerName/blobName?snapshot=<DateTime>
- Kök kapsayıcıdaki blob: /accountName/blobName
- Kök kapsayıcıda anlık görüntü: /accountName/blobName?snapshot=<DateTime>
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 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 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 bir sonsuz kiralama belirtmelidir. Sonlu süreli kiralama kimliği 412 durum koduyla başarısız oluyor (Önkoşul Başarısız oldu).
x-ms-source-lease-id: <ID> 2012-02-12 öncesi sürümler için isteğe bağlı (2012-02-12 ve sonraki sürümlerde desteklenmez). bu üst bilgiyi yalnızca sağlanan kira kimliği kaynak blobun Copy Blob etkin kira kimliğiyle eşleşiyorsa işlemi gerçekleştirmek için belirtin.

Bu üst bilgi belirtilirse ve kaynak 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).
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 , Coolve ColdArchivedeğerleridirHot. 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 İsteğe bağlı. 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 ve StandarddeğerleridirHigh. Blobda önceliği yalnızca bir kez ayarlayabilirsiniz. Bu üst bilgi, aynı bloba yapılan sonraki isteklerde yoksayılır. Bu üst bilgi olmadan varsayılan öncelik şeklindedir Standard.
x-ms-seal-blob İsteğe bağlı. 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 kapatır.
x-ms-immutability-policy-until-date Sürüm 2020-06-12 ve üzeri. Blobda ayarlanacak saklama tarihine kadar olan tarihi belirtir. Bu, blob'un değiştirilmeye veya silinmeye karşı korunabileceği tarihtir. RFC1123 biçimi izler.
x-ms-immutability-policy-mode Sürüm 2020-06-12 ve üzeri. Blobda ayarlanacak değişmezlik ilkesi modunu belirtir. Geçerli değerler ve lockeddeğerleridirunlocked. Değer unlocked , kullanıcının saklama tarihine kadar olan saklama süresini artırarak veya azaltarak ilkeyi değiştirebileceğini gösterir. Değer locked , bu eylemlerin yasaklandığını gösterir.
x-ms-legal-hold Sürüm 2020-06-12 ve üzeri. Blobda ayarlanacak yasal saklamayı belirtir. Geçerli değerler ve falsedeğerleridirtrue.

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

İstek gövdesi

Yok.

Yanıt

Yanıt bir HTTP durum kodu ve yanıt üst bilgileri kümesi 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 öncesi 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 ü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 Sürüm 2012-02-12 ve sonraki sürümlerde, kopyalama tamamlandıysa, 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 blob için değeri döndürür ETag .

2011-08-18 ve sonraki ETag sürümlerde değer 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. İstekle ilgili sorunları gidermek için bu üst bilgiyi 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. 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 veya Get Blob Properties ile Get Blob kullanın ya da bekleyen kopyalama işlemini iptal etmek için Abort Copy Blob öğesine 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 olarak tanımlar. Blobun bu sürümüne erişmek için sonraki isteklerde bu opak değeri kullanabilirsiniz.
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.

Yanıt gövdesi

Yok.

Örnek yanıt

Aşağıdaki kod, 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>  
  

Yetkilendirme

Azure Depolama'da herhangi bir veri erişimi işlemi çağrılırken yetkilendirme gereklidir. Aşağıdaki tabloda, bir Copy Blob 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 blob Yes Yes Yes
Aynı depolama hesabındaki kaynak blob Yes Yes Yes
Başka bir depolama hesabındaki kaynak blob 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 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.

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 veya hizmet sorumlusunun işlemi çağırması Copy Blob 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

2012-02-12 ve sonraki sürümlerde Copy Blob işlem zaman uyumsuz olarak tamamlanabilir. Bu işlem, kopyalama işlemini denetlemek veya iptal etmek için kullanabileceğiniz bir kopya 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 bir kopyanın belirtilen zaman aralığında hemen başlatılması veya tamamlanması garanti değildir.

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

2015-02-21 ve sonraki sürümlerde, kopyalama işleminin kaynağı Azure Dosyalar bir dosya da olabilir. Kaynak bir dosyaysa, hedef bir blok blobu olmalıdır.

Bir hesapta bekleyen Copy Blob birden çok 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 kopyalama işlemi bekleyen bir hedef bloba kopyalama girişimi 409 (Çakışma) durum koduyla başarısız oluyor.

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

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

İşlem Copy Blob aşağıdaki formlardan herhangi birini alabilir:

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

  • Kaynak blobu aynı ada sahip bir hedef bloba kopyalayarak hedef blobu etkili bir şekilde değiştirebilirsiniz. Böyle bir kopyalama işlemi, kaydedilmemiş blokları kaldırır ve blob'un meta verilerinin üzerine yazar.

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

  • Anlık görüntüyü temel blobu üzerinden kopyalayabilirsiniz. Anlık görüntüyü temel blobun konumuna getirerek blobun önceki bir sürümünü geri yükleyebilirsiniz.

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

Bir sayfa blobundan kopyalama yaparken, Blob Depolama kaynak blobun uzunluğunda bir hedef sayfa blobu oluşturur. Başlangıçta, sayfa blobu tüm sıfırları içerir. Ardından 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.

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 sahiptir.

Ekleme blobundan kopyalama yaparken, işlenen tüm bloklar kopyalanır. Kopyalama işleminin sonunda hedef blob, kaynak blobla aynı sayıda veya daha az işlenen bloka sahip olur.

Tüm blob türleri için, kopyalama işleminin durumunu denetlemek için hedef blobu çağırabilir Get Blob veya Get Blob Properties çağırabilirsiniz. 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 tüm değişiklikler bu işlemin başarısız olmasına neden olur. Bir kopya devam ederken hedef blobu değiştirme girişimi 409 (Çakışma) durum koduyla başarısız olur. Hedef blobda sonsuz kiralama varsa, kira kimliği öğesine Copy Blobgeçirilmelidir. Sınırlı süreli kiralamalara izin verilmez.

İşlem ETag başlatıldığında ve işlem tamamlandığında blok blobunun değeri değişir Copy Blob . ETag İşlem başladığında sayfa blobu 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 komut Get aracılığıyla görünür.

Blob özelliklerini, etiketlerini ve meta verilerini 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 ekleme blobları için ve yalnızca sürüm 2015-02-21 için)

Blob bir blok blobuysa, kaynak blob'un kaydedilmiş blok listesi de hedef bloba kopyalanır. Kaydedilmemiş bloklar kopyalanmaz.

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

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

x-ms-tags Üst bilgi hedef blob için etiketler sağlıyorsa sorgu dizesi kodlanmış olmalıdır. Etiket anahtarları ve değerleri, Blob Etiketlerini Ayarlama bölümünde belirtildiği gibi 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 etiket sağlamıyorsa, etiketler kaynak blobdan kopyalanır.

Kiralanan blobu kopyalama

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

Hedef blob etkin bir sonsuz kiralamaya sahipse, işleme yapılan çağrıda Copy Blob kira kimliğini belirtmeniz gerekir. Belirttiğiniz kira etkin bir sonlu süreli kiralamaysa, bu çağrı 412 durum koduyla başarısız olur (Önkoşul Başarısız oldu). Kopyalama işlemi beklemedeyken, hedef blobdaki herhangi bir kiralama işlemi 409 (Çakışma) durum koduyla başarısız olur. Kaynaktan farklı bir ada sahip bir hedef bloba kopyalama, kaynakla aynı ada sahip bir hedef bloba kopyalama veya temel blobu üzerinden anlık görüntü yükseltme işlemleri sırasında hedef blob üzerindeki sonsuz kiralama bu şekilde kilitlenir.

İstemci henüz var olmayan bir blob üzerinde kira kimliği belirtirse, Blob Depolama sürüm 2013-08-15 ve sonraki sürümlerde yapılan istekler için 412 (Önkoşul Başarısız) 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

Kaynak blob kopyalandığında, kaynak blobun anlık görüntüleri veya sürümleri hedefe kopyalanmaz. Bir hedef blobunun üzerine kopya yazıldığında, hedef blobla ilişkili tüm anlık görüntüler veya sürümler adının 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 blobu üzerinden yükseltmek için kopyalama işlemi gerçekleştirebilirsiniz. Bu şekilde 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ılabilir bir kopya yazılır.

Blob sürümlerini kopyalama

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

Arşivlenmiş blobu kopyalama

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

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

Kaynak blob yeniden dolduruluyorsa 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 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 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 bitene veya başarısız olana kadar üst bilgiyi incelemek x-ms-copy-status için kullanarak Get Blob Properties hedef blobu yoklama.
4xx, 500 veya 503 Kopyalama işlemi başarısız oldu.

Bir Copy Blob işlem 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 blob'un özelliklerine zaman ve sonuç değerini (success, failedveya aborted) yazar. İşlemin bir failed sonucu varsa, x-ms-copy-status-description üst bilgi bir hata ayrıntı dizesi içerir.

Bekleyen Copy Blob bir işlemin iki haftalık zaman aşımı vardır. İki hafta zaman aşımından sonra bitmeyen ve alanı 500 (OperationCancelled) olarak ayarlanmış failedx-ms-copy-status-description boş bir blob x-ms-copy-status bırakan bir kopyalama denemesi. Bir 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 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ü gerçekleştirme girişimleri 409 (Çakışma), "Devam Eden Blobu Kopyalama" durum koduyla başarısız olur.

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

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 blob'un üzerine yazılması, sağlanmazsa x-ms-access-tier sık erişimli veya seyrek erişimli katmanı hedeften devralır. Arşivlenen blob'un ü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ı.

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

İşlem Depolama hesabı türü Faturalama kategorisi
Blobu Kopyalama (hedef hesap1) Premium blok blobu
Standart genel amaçlı v2
Standart genel amaçlı v1
Yazma işlemleri
Blobu Kopyala (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 nesne farklı bir hesapta olduğunda kaynak 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.

Hedef hesap, kopyalama işlemini iptal etmek (bkz . Blob Kopyalamayı Durdurma) veya kopyalama işleminin durumunu denetlemek için (bkz. Blob Alma veya Blob Özelliklerini Alma) her istek için işlem maliyetlerine de neden olur.

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. Ancak, kaynak ve hedef blobların adları aynı hesapta aynıysa (örneğin, bir anlık görüntüyü temel bloba yükselttiğinizde), 2012-02-12 ve sonraki sürümlerde depolanan ek kopya meta verileri dışında ek ücret alınmaz.

Bir anlık görüntüyü temel blobunun yerini alacak şekilde yükselttiğiniz zaman, anlık görüntü ve temel blob aynı olur. Blokları veya sayfaları paylaşırlar, bu nedenle kopyalama işlemi depolama hesabının kapasite kullanımına ek ücret yansıtılmaz. Ancak, farklı bir ada sahip bir hedef bloba anlık görüntü kopyalarsanız bu işlem, sonuçta elde edilen yeni blob'un kullandığı depolama kaynakları için ek ücrete tabi olur. Farklı adlara sahip iki blob, aynı olsalar bile blokları veya sayfaları paylaşamaz. Anlık görüntü maliyeti senaryoları hakkında daha fazla bilgi için bkz. Anlık görüntülerin ücretleri nasıl tahakkuk ettirdiğini anlama.

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
Blob Kopyalamayı Durdur