İkili Büyük Nesneyi Kopyalama
Copy Blobİşlem, bir blobu depolama hesabı içindeki bir hedefe kopyalar.
Sürüm 2012-02-12 ve üzeri sürümlerde, kopyalama blobu işleminin kaynağı herhangi bir Azure depolama hesabında kaydedilmiş bir BLOB olabilir.
Sürüm 2015-02-21 ' den başlayarak, bir işlemin kaynağı Copy Blob herhangi bir Azure depolama hesabında bir Azure dosyası olabilir.
Not
Yalnızca 7 Haziran 2012 ' de veya sonrasında oluşturulan depolama hesapları, Copy Blob işlemin başka bir depolama hesabından kopyalamasına izin veriyor.
İstek
Copy Blobİstek aşağıdaki şekilde oluşturulabilir. HTTPS önerilir. myaccountDepolama hesabınızın adıyla, mycontainer kapsayıcının adı ve myblob hedef Blobun adıyla değiştirin.
Sürüm 2013-08-15 ' den başlayarak, kaynak blobu ile aynı hesapta yer alıyorsa hedef blobu için paylaşılan erişim imzası belirtebilirsiniz. Sürüm 2015-04-05 ' den başlayarak, farklı bir depolama hesabılmışsa hedef blobu 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 URI 'SI
Öykünülmüş depolama hizmetine karşı bir istek yaparken, öykünücü ana bilgisayar adını ve BLOB hizmeti bağlantı noktasını 127.0.0.1:10000 , ardından öykünülmüş depolama hesabı adı ile 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. geliştirme ve test için Azure Depolama Emulator kullanma.
URI parametreleri
İstek URI 'sinde aşağıdaki ek parametreler belirtilebilir.
| Parametre | Açıklama |
|---|---|
timeout |
İsteğe bağlı. timeoutParametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. BLOB hizmeti işlemleri Için zaman aşımlarını ayarlama. |
İstek Üst Bilgileri
Aşağıdaki tabloda gerekli ve isteğe bağlı istek üstbilgileri açıklanmaktadır.
| İstek Başlığı | Açıklama |
|---|---|
Authorization |
Gereklidir. Yetkilendirme şemasını, hesap adını ve imzayı belirtir. daha fazla bilgi için bkz. istekleri Azure Depolama 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. istekleri Azure Depolama 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ı. Blob ile ilişkili kullanıcı tanımlı bir ad-değer çifti belirtir. Ad-değer çiftleri belirtilmemişse, işlem meta verileri kaynak blob 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 Blobun veya dosyadan kopyalanmaz. Sürüm 2009-09-19 ' den başlayarak, meta veri adlarının C# tanımlayıcılarıiçin adlandırma kurallarına uymasının gerektiğini unutmayın. Daha fazla bilgi için bkz. kapsayıcıları, Blobları ve meta verileri adlandırma ve başvurma . |
x-ms-tags |
İsteğe bağlı. Blob üzerinde verilen sorgu dizesi kodlamalı etiketleri ayarlar. Etiketler kopyalama kaynağından kopyalanmaz. Daha fazla bilgi için bkz. açıklamalar. Sürüm 2019-12-12 ve daha yeni sürümlerde desteklenir. |
x-ms-source-if-modified-since |
İsteğe bağlı. Bir DateTime değer. Yalnızca kaynak blobu belirtilen tarih/saatten bu yana değiştirilmişse blobu kopyalamak için bu koşullu üstbilgiyi belirtin. Kaynak blobu değiştirilmediyse, blob hizmeti 412 (Önkoşul başarısız oldu) durum kodunu döndürür. Kaynak bir Azure dosyası ise bu üst bilgi belirtilemez. |
x-ms-source-if-unmodified-since |
İsteğe bağlı. Bir DateTime değer. Yalnızca kaynak blobu belirtilen tarih/saatten bu yana değiştirilmediyse, blobu kopyalamak için bu koşullu üstbilgiyi belirtin. Kaynak blobu değiştirildiyse, blob hizmeti 412 durum kodunu (Önkoşul başarısız) döndürür. Kaynak bir Azure dosyası ise bu üst bilgi belirtilemez. |
x-ms-source-if-match |
İsteğe bağlı. ETag değeri. Kaynak Blobun yalnızca ETag değeri belirtilen değerle eşleşiyorsa kaynak blobu kopyalamak için bu koşullu üstbilgiyi belirtin. ETag değerleri eşleşmezse, blob hizmeti 412 (Önkoşul başarısız) durum kodunu döndürür. Kaynak bir Azure dosyası ise bu üst bilgi belirtilemez. |
x-ms-source-if-none-match |
İsteğe bağlı. ETag değeri. Blobu kopyalamak için bu koşullu üstbilgiyi, yalnızca ETag değeri belirtilen değerle eşleşmiyorsa belirtin. Değerler aynıysa, blob hizmeti 412 durum kodunu (Önkoşul başarısız) döndürür. Kaynak bir Azure dosyası ise bu üst bilgi belirtilemez. |
If-Modified-Since |
İsteğe bağlı. Bir DateTime değer. Yalnızca hedef blobu belirtilen tarih/saatten bu yana değiştirilmişse blobu kopyalamak için bu koşullu üstbilgiyi belirtin. Hedef blobu değiştirilmediyse, blob hizmeti 412 (Önkoşul başarısız oldu) durum kodunu döndürür. |
If-Unmodified-Since |
İsteğe bağlı. Bir DateTime değer. Yalnızca hedef blobu belirtilen tarih/saatten bu yana değiştirilmediyse, blobu kopyalamak için bu koşullu üstbilgiyi belirtin. Hedef blobu değiştirildiyse, blob hizmeti 412 durum kodunu (Önkoşul başarısız) döndürür. |
If-Match |
İsteğe bağlı. ETag değeri. Yalnızca belirtilen ETag değeri ETag var olan bir hedef Blobun değeri ile eşleşiyorsa blobu kopyalamak için bu koşullu üst bilgi için bir ETag değeri belirtin. Hedef blobu için ETag, için belirtilen ETag ile eşleşmezse If-Match , blob hizmeti 412 (Önkoşul başarısız) durum kodunu döndürür. |
If-None-Match |
İsteğe bağlı. ETag değeri veya joker karakter (*). Bu koşullu üstbilginin yalnızca belirtilen ETag değeri hedef Blobun ETag değeriyle eşleşmezse blobu kopyalamak için bir ETag değeri belirtin. *Yalnızca hedef blobu yoksa, işlemi gerçekleştirmek için joker karakteri () belirtin. Belirtilen koşul karşılanmazsa, blob hizmeti 412 (Önkoşul başarısız oldu) durum kodunu döndürür. |
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 bir blobu belirten uzunluğu 2 kıb 'ye kadar olan bir URL olabilir. Değer, istek URI 'sinde görünecek şekilde URL kodlamalı olmalıdır. Aynı depolama hesabındaki bir kaynak Blobun paylaşılan anahtar aracılığıyla yetkilendirilenebilir. Ancak, kaynak başka bir hesaptaki bir Blobun, kaynak Blobun ortak olmalıdır veya paylaşılan erişim imzası aracılığıyla yetkilendirilmiş olmalıdır. Kaynak blobu ortak ise kopyalama işlemini gerçekleştirmek için yetkilendirme gerekmez. Sürüm 2015-02-21 ' den başlayarak, kaynak nesne Azure dosya hizmetindeki bir dosya olabilir. Kaynak nesne bir blob 'a kopyalanacak bir dosya ise, kaynak dosyanın aynı hesapta veya farklı bir hesapta yer aldığı bir paylaşılan erişim imzası kullanılarak yetkilendirilmiş olması gerekir. Yalnızca 7 Haziran 2012 ' de veya sonrasında oluşturulan depolama hesapları, Copy Blob işlemin başka bir depolama hesabından kopyalamasına izin veriyor.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 Dosya hizmette 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?sastoken2012-02-12 öncesi sürümlerde bloblar yalnızca aynı hesap içinde kopyalanır ve kaynak ad şu biçimleri kullanabilir: - Adlandırılmış kapsayıcıda blob: /accountName/containerName/blobName- Adlandırılmış kapsayıcıda anlık görüntü: /accountName/containerName/blobName?snapshot=<DateTime>- Kök kapsayıcıda 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 kiraya sahipse gereklidir. Bu üst bilgi için belirtilen kira kimliği, hedef blob'un kira kimliğiyle eşleşmeli. İstek kiralama kimliğini içermezse veya geçerli değilse, işlem 412 (Önkoşul Başarısız) durum koduyla başarısız olur. Bu üst bilgi belirtilirse ve hedef blobda şu anda etkin kiralama yoksa, işlem 412 (Önkoşul Başarısız) durum koduyla da başarısız olur. Sürüm 2012-02-12 ve daha yeni sürümlerde, bu değer kiralanan blob için etkin, sonsuz bir kiralama belirterek belirt gerekir. Sınırlı süreli kiralama kimliği 412 (Önkoşul Başarısız) ile başarısız oluyor. |
x-ms-source-lease-id: <ID> |
İsteğe bağlı, 2012-02-12 öncesi sürümler (2012-02-12 ve daha yeni sürümlerde desteklenmez). Yalnızca verilen kira kimliği kaynak blob'un etkin kira kimliğiyle eşlese işlemi gerçekleştirmek Copy Blob için bu üst bilgiyi belirtin.Bu üst bilgi belirtilirse ve kaynak blobda şu anda etkin kiralama yoksa, işlem 412 (Önkoşul Başarısız) durum koduyla da başarısız olur. |
x-ms-client-request-id |
İsteğe bağlı. Depolama analizi günlüğü etkinleştirildiğinde analiz günlüklerine kaydedilen 1 KiB karakter sınırıyla istemci tarafından oluşturulan ve opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucu tarafından alınan istekler arasında bağıntı sağlamak için bu üst bilginin kullanılması kesinlikle önerilir. Daha fazla bilgi için bkz. Depolama Analiz Günlüğü ve Azure Günlüğü Hakkında: İstekleri Izlemek için Depolama Kullanma. |
x-ms-access-tier |
İsteğe bağlı. Hedef blobda ayar için katmanı belirtir. Premium hesapta yalnızca sürüm 2017-04-17 ve daha yenisi olan sayfa blobları için. Desteklenen katmanların tam Premium Depolama için VM'ler için yüksek performanslı depolama ve yönetilen diskler'i denetleyin. Blok blobları için sürüm 2018-11-09 ve daha yenisi. Blok blobu katmanlama blob depolamada veya genel amaçlı v2 hesaplarda desteklenmiş, geçerli Hot / Cool / Archive değerlerdir. Blok blobu katmanlama hakkında ayrıntılı bilgi için bkz. Hot, cool ve archive storage tiers. |
x-ms-rehydrate-priority |
İsteğe bağlı. Arşivlenmiş bir blobu yeniden dolum önceliğini gösterir. Blok blobları için 2019-02-02 ve daha yeni sürümlerde desteklenmiş. Geçerli değerler: High / Standard . Öncelik, bir blob üzerinde yalnızca bir kez ayar olabilir. Bu üst bilgi, aynı bloba yapılan sonraki isteklerde yoksayılır. Bu üst bilgi olmadan varsayılan öncelik Standard değeridir. |
x-ms-seal-blob |
İsteğe bağlı. 2019-12-12 veya daha yeni bir sürümde desteklenen. Yalnızca Ekleme Blobları için geçerlidir. Kopyalama işlemi tamam olduktan sonra hedef blobu mühürler. |
x-ms-immutability-policy-until-date |
Sürüm 2020-06-12 ve daha yenisi. Blobda ayar için 'saklama tarihine kadar' tarihi belirtir. Bu, blob'un değiştirildikten veya silindikten sonra korunacak tarihtir. RFC1123 biçimini izler. |
x-ms-immutability-policy-mode |
Sürüm 2020-06-12 ve daha yenisi. Blobda ayarlanabilirlik ilkesi modunu belirtir. Geçerli değerler: unlocked / locked . unlocked , kullanıcının saklama tarihini artırarak veya azaltarak ilkeyi değiştirenin olduğunu gösterir. locked , bu eylemlerin yasaklanmış olduğunu gösterir. |
x-ms-legal-hold |
Sürüm 2020-06-12 ve daha yenisi. Blobda ayar uygulanacak yasal tutmanın geçerli değerlerini true/false belirtir. |
Bu işlem yalnızca x-ms-if-tags belirtilen x-ms-source-if-tags koşul karşılanırsa ve koşullu üst bilgileri başarılı olmak için destekler. Daha fazla bilgi için bkz. Blob Hizmeti İşlemleri için Koşullu Üst Bilgiler 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 daha yeni bir sürümde 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şlem için 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 uygun.
| Yanıt üst bilgisi | Açıklama |
|---|---|
ETag |
Sürüm 2012-02-12 ve daha yeni sürümlerde, kopyalama tamamlandı ise hedef blob'un ETag'ini içerir. Kopya tamamlanmadı ise, kopyalamanın başında oluşturulan boş blob'un ETag'ini içerir. 2012-02-12 öncesi sürümlerde, hedef blob için ETag döndürür. Sürüm 2011-08-18 ve daha yeni sürümlerde ETag değeri tırnak içinde olur. |
Last-Modified |
Kopyalama işlemi tamamlanan hedef bloba tarih/saat döndürür. |
x-ms-request-id |
Bu üst bilgi, yapılan isteği benzersiz bir şekilde tanımlar ve isteğin sorunlarını gidermek için kullanılabilir. Daha fazla bilgi için bkz. API İşlemleri Sorunlarını Giderme. |
x-ms-version |
İsteği yürütmek için kullanılan Blob hizmetinin 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 |
Hizmet tarafından oluşturulan ve yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri. |
x-ms-copy-id: <id> |
Sürüm 2012-02-12 ve daha yenisi. Bu kopyalama işlemi için dize tanımlayıcısı. Bu kopyalama işlemi durumunu kontrol etmek için veya ile birlikte kullanın veya bekleyen kopyayı Get Blob Get Blob Properties durdurmak için Abort Copy Blob geçişini kullanın. |
x-ms-copy-status: <success | pending> |
Sürüm 2012-02-12 ve daha yenisi. Kopyalama işlemi şu değerlerle birlikte durumu: - success: kopyalama başarıyla tamamlandı.- pending: kopyalama devam ediyor. |
x-ms-version-id: <DateTime> |
Sürüm 2019-12-12 ve daha yenisi. Hizmet tarafından döndürülen ve blobu benzersiz olarak tanımlayan bir Tarih Saat değeri. Bu üst bilgi değeri blob sürümünü gösterir ve sonraki isteklerde blob'un bu sürümüne erişmek için kullanılabilir. Bu değer opak olarak kabul edilmelidir. |
x-ms-client-request-id |
Bu üst bilgi, isteklerde ve ilgili yanıtlarda sorun gidermek için kullanılabilir. bu üst bilginin değeri, istekte mevcutsa üst bilgi değerine eşittir ve değer en fazla x-ms-client-request-id 1024 görünür ASCII karakteridir. üst x-ms-client-request-id bilgisi istekte yoksa, yanıtta bu üst bilgi mevcut olmaz. |
Yanıt Gövdesi
Yok.
Örnek Yanıt
Aşağıda blob kopyalama isteği için örnek bir yanıt ve sağlanmaktadı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
Bu işlem hesap sahibi tarafından çağrılabilirsiniz. Sürüm 2013-08-15 ve sonraki sürümlerde yapılan istekler için, aynı hesap içindeki kopyalama işlemleri için hedef bloba veya kapsayıcıya yazma izni olan bir paylaşılan erişim imzası desteklemektedir. İstekte belirtilen paylaşılan erişim imzasının yalnızca hedef blob için geçerli olduğunu unutmayın.
Kaynak bloba veya dosyaya erişim, istek üst bilgisinde açıklandığı gibi ayrı olarak x-ms-copy-source yetkilendirilir.
Aşağıdaki tabloda, Blob Kopyalama işlemi için hedef ve kaynak nesnelerin nasıl yetkilendirilenin gerektiği açıklandı.
| Blob | Paylaşılan anahtar/paylaşılan anahtar Lite ile yetkilendirme | Paylaşılan erişim Imzasıyla yetkilendirme | Ortak nesne yetkilendirme gerektirmiyor |
|---|---|---|---|
| Hedef blobu | Yes | Yes | Hayır |
| Aynı hesapta kaynak blobu | Yes | Yes | Yes |
| Başka bir hesapta kaynak blobu | Hayır | Yes | Yes |
| Aynı hesapta veya başka bir hesapta kaynak dosya | Hayır | Yes | Yok |
Eğer bir istek, x-ms-tags istek üst bilgisine sahip Etiketler belirtiyorsa, çağıran, BLOB etiketlerini ayarla işleminin yetkilendirme gereksinimlerini karşılamaları gerekir.
Açıklamalar
Sürüm 2012-02-12 ve daha yeni sürümlerde Copy Blob işlem zaman uyumsuz olarak tamamlanabilir. Bu işlem kopyalama işlemini denetlemek veya durdurmak için kullanabileceğiniz bir kopya KIMLIĞI döndürür. Blob hizmeti Blobları en iyi çaba temelinde kopyalar.
Kopyalama işlemi için kaynak blobu bir Blok Blobu, bir ekleme Blobu veya Sayfa Blobu ya da bir anlık görüntü olabilir. Hedef blobu zaten varsa, kaynak blobu ile aynı blob türünde olması gerekir. Var olan tüm hedef Blobun üzerine yazılacak. Hedef blobu, bir kopyalama işlemi sürerken değiştirilemez.
Sürüm 2015-02-21 ve daha yeni sürümlerde kopyalama işleminin kaynağı da Azure dosya hizmetindeki bir dosya olabilir. Kaynak bir dosya ise, hedef bir Blok Blobu olmalıdır.
Copy BlobBir hesap içindeki birden çok bekleyen işlem sırayla işlenebilir. Hedef Blobun yalnızca bir adet bekleyen kopyalama blob işlemi olabilir. Diğer bir deyişle, bir blob birden çok bekleyen işlemin hedefi olamaz Copy Blob . Copy BlobZaten bekleyen bir kopyası olan bir hedef blobu girişimi 409 (çakışma) durum kodu ile başarısız oluyor.
Yalnızca 7 Haziran 2012 ' de veya sonrasında oluşturulan depolama hesapları, Copy Blob işlemin başka bir depolama hesabından kopyalamasına izin veriyor. Başka bir depolama hesabından 7 Haziran 'dan önce oluşturulan bir hesaba kopyalama girişimi, 2012 (Hatalı Istek) durum 400 kodu ile başarısız olur.
Copy Blobİşlem her zaman kaynak Blobun veya dosyanın tamamını kopyalar; bir dizi bayt veya blok kümesi kopyalama desteklenmez.
Bir Copy Blob işlem aşağıdaki formlardan herhangi birini gerçekleştirebilir:
Kaynak blobu, farklı bir ada sahip bir hedef bloba kopyalayabilirsiniz. Hedef blobu aynı blob türünde (blok, ekleme veya sayfa) var olan bir BLOB olabilir veya kopyalama işlemi tarafından oluşturulan yeni bir BLOB olabilir.
Kaynak blobu, hedef blobu etkin bir şekilde değiştirerek aynı ada sahip bir hedef bloba kopyalayabilirsiniz. Bu tür bir kopyalama işlemi, kaydedilmemiş blokları kaldırır ve Blobun meta verilerinin üzerine yazar.
Azure dosya hizmetindeki bir kaynak dosyayı hedef bloba kopyalayabilirsiniz. Hedef blobu varolan bir Blok Blobu olabilir veya kopyalama işlemi tarafından oluşturulan yeni bir Blok Blobu olabilir. Dosyalardan sayfa bloblarına veya ekleme bloblarına kopyalama desteklenmez.
Bir anlık görüntüyü kendi temel blobundan kopyalayabilirsiniz. Bir anlık görüntüyü temel Blobun konumuna yükselterek bir blob 'un önceki bir sürümünü geri yükleyebilirsiniz.
Bir anlık görüntüyü hedef bloba farklı bir adla kopyalayabilirsiniz. Elde edilen hedef blobu anlık görüntü değil yazılabilir bir Blobun.
Bir sayfa blobundan kopyalarken, blob hizmeti kaynak Blobun uzunluğunun bir hedef Sayfa Blobu oluşturur ve başlangıçta tüm sıfırları içerir. Sonra kaynak sayfa aralıkları numaralandırılır ve boş olmayan aralıklar kopyalanır.
Bir Blok Blobu veya bir ekleme blobu için, blob hizmeti bu işlemden dönmeden önce sıfır uzunluğunda bir kaydedilmiş blob oluşturur.
Bir blok blobundan kopyalarken, tüm kaydedilmiş bloklar ve blok kimlikleri kopyalanır. İşlenmemiş bloklar kopyalanmaz. Kopyalama işleminin sonunda, hedef blobu kaynak olarak aynı işlenen blok sayısına sahip olacaktır.
Bir ekleme blobundan kopyalarken, tüm kaydedilmiş bloklar kopyalanır. Kopyalama işleminin sonunda, hedef blobu kaynak olarak aynı işlenen blok sayısına sahip olacaktır.
Tüm blob türlerinde, Get Blob Get Blob Properties kopyalama işleminin durumunu denetlemek için hedef blobu çağırabilirsiniz. Kopyalama tamamlandığında son blob uygulanır.
Bir kopyalama işleminin kaynağı ETags sağlıyorsa, kopyalama devam ederken kaynakta herhangi bir değişiklik varsa, kopyalama başarısız olur. Bir kopya sürerken hedef blobu değiştirme girişimi 409 çakışmasıyla başarısız olur. Hedef Blobun sonsuz bir kirası varsa, kira KIMLIĞININ geçirilmesi gerekir Copy Blob . Sınırlı süreli kiralara izin verilmez.
Blok Blobu için ETag, Copy Blob işlem başlatıldığında ve kopyalama tamamlandığında değişir. Bir Sayfa Blobu için ETag, işlem başlatıldığında değişir Copy Blob ve kopyalama sırasında sık sık değişmeye devam eder. Bir blok blobunun içeriği yalnızca tam kopyalama tamamlandıktan sonra GET kullanılarak görülebilir.
Blob özelliklerini, etiketleri ve meta verileri kopyalama
Blob kopyalandığında, aşağıdaki sistem özellikleri aynı değerlere sahip hedef bloba kopyalanır:
Content-TypeContent-EncodingContent-LanguageContent-LengthCache-ControlContent-MD5Content-Dispositionx-ms-blob-sequence-number (for page blobs only)x-ms-committed-block-count (for append blobs only, and for version 2015-02-21 only)
Blob bir Blok Blobu ise kaynak Blobun yürütülen blok listesi de hedef bloba kopyalanır. Kaydedilmemiş bloklar kopyalanmaz.
Hedef blobu her zaman kaynak blobu ile aynı boyutta olduğundan, Content-Length hedef Blobun üst bilgisinin değeri kaynak blobu için ile eşleşir.
Kaynak blobu ve hedef blobu aynı olduğunda, Copy Blob kaydedilmeyen blokları kaldırır. Bu durumda meta veriler belirtilmişse, mevcut meta verilerin yeni meta verilerle üzerine yazılır.
Üst bilgide hedef blobu için Etiketler sağlanmışsa x-ms-tags , sorgu dizesi kodlamalı olmaları gerekir. Etiket anahtarları ve değerleri, blob etiketlerini ayarlama bölümünde belirtilen adlandırma ve uzunluk gereksinimleriyle uyumlu olmalıdır. Ayrıca, x-ms-tags üst bilgi en fazla KB 2timeforlocal etiket içerebilir. Daha fazla etiket gerekliyse BLOB etiketlerini ayarla işlemini kullanın.
x-ms-tagsÜst bilgide Etiketler sağlanmazsa, bunlar kaynak blobundan kopyalanmaz.
Kiralanmış bir blob kopyalanıyor
Copy Blobİşlem yalnızca kaynak Blobun okur, bu nedenle kaynak Blobun kira durumunun önemi yoktur. Ancak, Copy Blob işlem, kopya başlatıldığında kaynak Blobun ETag öğesini kaydeder. Kopya tamamlanmadan önce ETag değeri değişirse kopyalama başarısız olur. Kopyalama işlemi sırasında, kaynak Blobun üzerindeki değişiklikleri kiralayarak engelleyebilirsiniz.
Hedef Blobun etkin bir sonsuz kirası varsa, işlem çağrısında kira KIMLIĞINI belirtmeniz gerekir Copy Blob . Belirttiğiniz kira etkin bir sınırlı süreli kira ise, bu çağrı 412 (Önkoşul başarısız) durum kodu ile başarısız olur. Kopyalama beklemede olsa da, hedef Blobun üzerindeki kira işlemleri 409 (çakışma) durum kodu ile başarısız olur. Kopyalama işlemi sırasında, kaynak ile aynı ada sahip bir hedef bloba kopyalayarak veya bir anlık görüntüyü kendi temel blobundan yükseltmek için hedef Blobun üzerinde sonsuz bir kira bu şekilde kilitlenir. İstemci henüz mevcut olmayan bir blob üzerinde bir kira KIMLIĞI belirtiyorsa, blob hizmeti, sürüm 2013-08-15 ve üzeri 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 hizmeti 201 (oluşturuldu) durum kodunu döndürür.
Anlık görüntüler kopyalanıyor
Bir kaynak blobu kopyalandığında, kaynak Blobun herhangi bir anlık görüntü veya sürüm hedefe kopyalanmaz. Hedef Blobun bir kopya ile üzerine yazıldığında, hedef blob ile ilişkili tüm anlık görüntüler veya sürümler, adının altında bozulmadan kalır.
Bir anlık görüntü blobunu kendi temel blobunun üzerinde yükseltmek için bir kopyalama işlemi yapabilirsiniz. Bu şekilde, bir Blobun önceki bir sürümünü geri yükleyebilirsiniz. Anlık görüntü kalır, ancak hedefi hem okunabilir hem de yazılabilir bir kopya ile üzerine yazılır.
Sürümler kopyalanıyor
Bir sürüm blobunu kendi temel blobundan 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 hedefi hem okuma hem de yazma olabilecek bir kopya ile üzerine yazılır.
Arşivlenmiş blob kopyalanıyor (sürüm 2018-11-09 ve üzeri)
Arşivlenmiş bir blob, aynı depolama hesabı içindeki yeni bir bloba kopyalanabilir. Bu, başlangıçta arşivlenen blobu olduğu gibi bırakır. Arşivlenmiş bir blobu kaynak olarak kopyalarken, istek hedef blob'un katmanını x-ms-access-tier belirten üst bilgisi içermesi gerekir. Veriler sonunda hedef bloba kopyalanır.
Kaynak arşivlenirken kopyalama kaynağı ve hedef aynı depolama hesabı olması gerekir. Kopyalamanın kaynağı hala beklemede yenidenhydrate durumda ise istek Çakışma ile başarısız olur.
Blok blobu düzeyinde katmanlama hakkında ayrıntılı bilgi için bkz. Hot, cool ve archive storage tiers.
Bekleyen Kopya ile Çalışma (sürüm 2012-02-12 ve daha yenisi)
İşlem kopyalamayı zaman uyumsuz olarak tamamlarsa, tarafından döndürülen durum koduna göre sonraki adımı belirlemek Copy Blob için aşağıdaki tabloyu Copy Blob kullanın:
| Durum Kodu | Anlamı |
|---|---|
| 202 (Kabul edildi), x-ms-copy-status: success | Kopyalama başarıyla tamamlandı. |
| 202 (Kabul edildi), x-ms-copy-status: pending | Kopyalama tamamlanmadı. Kopyalama tamamlandıktan veya başarısız Get Blob Properties olana kadar x-ms-copy-status'ı incelemek için kullanarak hedef blobu yoklar. |
| 4xx, 500 veya 503 | Kopyalama başarısız oldu. |
Bir işlem sırasında Copy Blob ve sonrasında, hedef blob'un özellikleri, işlem kopyalama kimliğini ve Copy Blob kaynak blob'un URL'sini içerir. Kopyalama tamamlandığında, Blob hizmeti zaman ve sonuç değerini ( success , veya ) hedef blob failed aborted özelliklerine yazar. işlemi failed ise, üst x-ms-copy-status-description bilgisi bir hata ayrıntı dizesi içerir.
Bekleyen bir Copy Blob işlem 2 hafta zaman aşımına sahip. 2 hafta sonra tamamlanmadı ve alanı x-ms-copy-status failed 500 (OperationCancelled) olarak ayarlanmış boş bir blob x-ms-copy-status-description bırakır. Kopyalama sırasında ortaya çıkabilir aralıklı, önemli olmayan hatalar kopyanın ilerlemesini atsa da başarısız olmasına neden olmaz. Bu x-ms-copy-status-description durumlarda, aralıklı hataları açıklar.
Kopyalama sırasında hedef blobu değiştirme veya anlık görüntü oluşturma girişimi 409 (Çakışma) Devam Eden Blobu ile başarısız olur.
İşlem çağrılırsanız bir üst bilgiyle karşılanır ve hedef blobda bozulmamış meta veriler ve sıfır bayt Abort Copy Blob x-ms-copy-status:aborted blob uzunluğu olur. Kopyayı yeniden denemek için özgün Copy Blob çağrıyı tekrarlayın.
İşlem Copy Blob 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 başarıyla tamamlandı. |
| 4xx, 500 veya 503 | Kopyalama başarısız oldu. |
Premium depolama katmanları için katman devralınmış olur. Blok blobları için x-ms-access-tier sağlanmazsa hedef blob'un üzerine yazmak hedeften Hot/Cool katmanını devralacak. Arşivlenmiş bir blobu üzerine yazma başarısız olur. Blok blobu düzeyinde katmanlama hakkında ayrıntılı bilgi için bkz. Hot, cool ve archive storage tiers.
Faturalandırma
İşlemin hedef hesabı, kopyalamayı başlatmak için bir işlem için ücret tahsil edilir ve ayrıca her istek için kopyalama işlemi için bir işlem iptal eder veya kopyalama işlemi Copy Blob durumunu ister.
Kaynak blob başka bir hesapta olduğunda, kaynak hesap işlem maliyetlerine neden olur. Ayrıca, kaynak ve hedef hesaplar farklı bölgelerde (örneğin, ABD Kuzey ve ABD Güney) bulunuyorsa, isteğin aktarımı için kullanılan bant genişliği çıkış olarak kaynak depolama hesabına ücret tahsil edilecektir. Egress bölgedeki hesaplar arasında geçiş ücretsizdir.
Bir kaynak blobu aynı hesap içinde farklı bir adla hedef bloba kopyalayıp yeni blob için ek depolama kaynakları kullanırsınız. Bu nedenle kopyalama işlemi, bu ek kaynaklar için depolama hesabının kapasite kullanımından ücret tahsil eder. Ancak, kaynak ve hedef blob adı aynı hesap içinde aynı ise (örneğin, bir anlık görüntüyü temel bloba yükselttiklerinde), 2012-02-12 ve daha yeni bir sürümde depolanan ek kopyalama meta verileri dışında ek ücret tahakkuk ettirilen bir ücret ödemez.
Bir anlık görüntüyü temel blobu değiştirmek için yükseltin, anlık görüntü ve temel blob aynı olur. Bloklar veya sayfalar paylaştırıldıklarından kopyalama işlemi, depolama hesabının kapasite kullanımına yönelik ek ücrete neden olmaz. Ancak, bir anlık görüntüyü farklı bir adla hedef bloba kopyalamanız, yeni blob tarafından kullanılan depolama kaynakları için ek ücrete tabidir. 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 Etmelerini Anlama.
Ayrıca bkz.
Azure Depolama'a istekleri yetkilendirme
Durum ve Hata Kodları
Blob Hizmeti Hata Kodları
Anlık Görüntülerin Ücretleri Nasıl Tahakkuk Ettiğni Anlama
Blob Kopyalamayı Durdurma