Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İş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:10000
belirtin 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 bilgiler
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-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.
- Microsoft Entra Id (önerilen)
-
paylaşılan erişim imzaları (SAS)
-
paylaşılan anahtar
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
- Azure RBAC eylemi:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (mevcut bir 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 blobu veri 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
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 Blob
geç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
, failed
veya aborted
veya) 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ış failed
x-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