İ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 kaydedilmiş 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ü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:10000
belirtin 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-tags |
İsteğe bağlı. Blobda verilen 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-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 veya dosyanın adını belirtir. Sürüm 2012-02-12'den başlayarak, bu değer blob belirten uzunlukta 2 kibibayta (KiB) kadar bir URL olabilir. Değer, istek URI'sinde göründüğü gibi URL kodlanmış olmalı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 bir bloba kopyalanacak bir dosyaysa, kaynak dosya ister aynı hesapta ister farklı bir hesapta olsun, paylaşılan erişim imzası aracılığıyla yetkilendirilmelidir. 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.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 içindeki 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 kiralanan 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). İşlemi gerçekleştirmek Copy Blob için bu üst bilgiyi belirtin, ancak sağlanan kira kimliği kaynak blobun etkin kira kimliğiyle eşleşiyorsa.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ı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 |
İsteğe bağlı. Hedef blobda ayarlanacak katmanı belirtir. Bu üst bilgi, premium hesapta yalnızca sürüm 2017-04-17 ve üzeri olan 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 , Cool Cold ve Archive değ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 Standard değ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ı. Sürüm 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ştirilemezlik ilkesi modunu belirtir. Geçerli değerler ve locked değ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 false değ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 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 ö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 .Sürüm 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 öğesine 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 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 |
İsteklerde ve karşılık gelen 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 ü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şim 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ında kaynak blob | Yes | Yes | Yes |
Başka bir depolama hesabında 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 blobunun Okuma (r) iznine sahip SAS belirteci aracılığıyla ayrı olarak yetkilendirilmiş olması gerektiğini unutmayın. Kaynak blob yetkilendirmesi hakkında daha fazla bilgi için istek üst bilgisinin x-ms-copy-source
ayrı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. 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
için gereken RBAC eylemi ve bu eylemi içeren en az ayrıcalıklı yerleşik Azure RBAC rolü verilmiştir:
Hedef blob
- Azure RBAC eylemi:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (mevcut bloba yazmak için) veya Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (hedefe yeni bir blob yazmak için)
- En az ayrıcalıklı yerleşik rol:Depolama Blob Verileri Katkıda Bulunanı
Aynı depolama hesabındaki kaynak blob
- Azure RBAC eylemi:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
- En az ayrıcalıklı yerleşik rol:Depolama Blob Veri Okuyucusu
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 Blob
geç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
, failed
veya 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ış failed
x-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