Artımlı Kopyalama Blobu
İşlem, Incremental Copy Blob
kaynak sayfa blobunun anlık görüntüsünü bir hedef sayfa blob'una kopyalar. Yalnızca daha önce kopyalanan anlık görüntüdeki farklar hedefe aktarılır. Kopyalanan anlık görüntüler özgün anlık görüntünün tam kopyalarıdır ve her zamanki gibi bunları okuyabilir veya kopyalayabilirsiniz. Bu API, REST 2016-05-31 sürümünden itibaren desteklenir.
İstek
İsteği aşağıdaki gibi oluşturabilirsiniz Incremental Copy Blob
. HTTPS önerilir.
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.
comp
değeriyle incrementalcopy
sorgu parametresi, bu isteğin artımlı bir anlık görüntü oluşturmak olduğunu gösterir.
PUT yöntemi istek URI'si | HTTP sürümü |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy |
HTTP/1.1 |
Öykünülmüş depolama hizmeti URI'si
Öykünülmüş depolama hizmetine yönelik istekte bulunurken öykünücü konak adını ve Azure Blob Depolama hizmet bağlantı noktasını 127.0.0.1:10000 olarak ve ardından öykünülen depolama hesabı adını belirtin. Ayrıca sorgu parametresini incrementalcopy
olarak ayarlayarak bu isteğin comp
artımlı kopyalama için olduğunu belirtin.
PUT yöntemi istek URI'si | HTTP sürümü |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy |
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 ve anonim istekler için isteğe bağlıdır. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma. |
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 yalnızca hedef blob belirtilen tarih/saatten sonra değiştirilmediyse 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; yalnızca belirtilen ETag değer mevcut bir hedef blob için değerle ETag eşleşiyorsa.
ETag Hedef blob için belirtilen If-Match değeriyle eşleşmiyorsa ETag 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 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.yalnızca hedef blob yoksa, işlemi 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 sayfa blob anlık görüntüsünün adını belirtir. Bu değer, sayfa blobu anlık görüntüsünü belirten en fazla 2 kibibayt (KiB) uzunluğunda bir URL'dir. Değer, istek URI'sinde göründüğü gibi URL ile kodlanmış olmalıdır. Kaynak blob URI'sini iki yoldan biriyle yetkilendirebilirsiniz: Kaynak blob URI'sı bir sayfa blobu anlık görüntüsüne başvurabilir, ancak anlık görüntünün temel blobu üzerinde oluşturulmuş bir paylaşılan erişim imzası (SAS) belirteci içermelidir. SAS'nin imzalı kaynak ( sr ) alanı olarak b ayarlanmalıdır. Örneğin: https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature> .Kaynak blob URI'sı genel sayfa blob anlık görüntüsüne başvurabilir; örneğin, https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime> . |
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. Daha fazla bilgi için bkz. İzleme Azure Blob Depolama. |
İstek gövdesi
Yok.
Yanıt
Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir.
Durum kodu
Başarılı bir işlem 202 (Kabul Edildi) 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.
Syntax | Description |
---|---|
ETag |
İşlemleri koşullu olarak gerçekleştirmek için kullanabileceğiniz bir değer içerir. Değer tırnak içindedir. |
Last-Modified |
Blob'un son değiştirildiği tarih ve saat. Daha fazla bilgi için bkz . Üst bilgilerde tarih/saat değerlerinin gösterimi. Blob üzerindeki herhangi bir yazma işlemi (blobun meta verileri veya özelliklerindeki güncelleştirmeler dahil) blobun son değiştirme zamanını değiştirir. |
x-ms-request-id |
Yapılan isteği benzersiz olarak tanımlar ve istekle ilgili sorunları gidermek için kullanılabilir. Daha fazla bilgi için bkz . API işlemleriyle ilgili sorunları giderme. |
x-ms-version |
İsteği çalıştırmak için kullanılan Blob Depolama sürümünü gösterir. |
Date |
Yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri. Hizmet bu değeri oluşturur. |
x-ms-copy-id: <id> |
Bu kopyalama işleminin dize tanımlayıcısı. Bu kopyalama işleminin durumunu denetlemek için ile Get Blob Properties kullanın veya bekleyen bir kopyayı durdurmak için öğesini Abort Copy Blob geçirin. |
x-ms-copy-status: pending |
Kopyalama işleminin durumu. Bu, kopyanın başlatıldığını ve devam ettiğini belirtmek için her zaman beklemededir. |
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 varsa üst bilginin değerine x-ms-client-request-id eşittir. Değer en fazla 1.024 görünür ASCII karakterdir.
x-ms-client-request-id Üst bilgi istekte yoksa yanıtta bulunmaz. |
Yanıt gövdesi
Yok.
Örnek yanıt
Aşağıda, artımlı kopyalama gerçekleştirme isteği için örnek bir yanıt verilmiştir:
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: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date>
Yetkilendirme
Azure Depolama'da herhangi bir veri erişimi işlemi çağrılırken yetkilendirme gereklidir. Aşağıdaki bölümde, işlemin hedef nesnesininIncremental Copy Blob
nasıl yetkilendirilebileceği açıklanmaktadır. kaynak bloba veya dosyaya erişim, istek üst bilgisinin ayrıntılarında x-ms-copy-source
açıklandığı gibi ayrı olarak yetkilendirilir.
Ö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 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, yönetilen kimlik veya hizmet sorumlusunun işlemi çağırması Incremental Copy Blob
için gereken RBAC eylemi ve bu eylemi içeren en az ayrıcalıklı yerleşik Azure RBAC rolü verilmiştir:
- Azure RBAC eylemi:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (var olan bir bloba yazmak için) veya Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (hedefe yeni blob yazmak için)
- En az ayrıcalıklı yerleşik rol:Depolama Blob Verileri Katkıda Bulunanı
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
Artımlı kopyanın hedefi mevcut olmamalıdır veya aynı kaynak blobdan önceki bir artımlı kopya ile oluşturulmuş olmalıdır. Oluşturduktan sonra hedef blob kaynakla kalıcı olarak ilişkilendirilir ve yalnızca artımlı kopyalar için kullanılabilir. ve List Blobs
API'leri Get Blob Properties
blob'un bu şekilde oluşturulan artımlı bir kopya blobu olup olmadığını gösterir.
Artımlı kopyalama bloblarını doğrudan indiremezsiniz. Desteklenen tek işlemler , Incremental Copy Blob
ve Delete Blob
işlemleridirGet Blob Properties
. Kopyalanan anlık görüntüleri her zamanki gibi okuyabilir ve silebilirsiniz.
Hizmette zaman uyumsuz olarak artımlı kopyalama gerçekleştirirsiniz ve tamamlanmak için yoklama yapmanız gerekir. Bekleyen bir kopyayı Copy Blob
yoklama hakkında ayrıntılı bilgi için API'ye bakın. Kopyalama tamamlandığında hedef blob yeni bir anlık görüntü içerir. API, Get Blob Properties
yeni oluşturulan anlık görüntünün anlık görüntü süresini döndürür.
Hedef blobda ilk kez artımlı kopyalama gerçekleştirdiğinizde, kaynaktan tam olarak kopyalanan bir anlık görüntüyle yeni bir blob oluşturulur. sonraki her çağrısı Incremental Copy Blob
, daha önce kopyalanan anlık görüntüden yalnızca değişiklik değişikliklerini kopyalayarak yeni bir anlık görüntü oluşturur.
Değişiklik değişiklikleri, kaynak blob anlık görüntüsünde bir Get Page Ranges
çağrı düzenlenerek sunucuda hesaplanır. En son kopyalanan anlık görüntüye ayarlayın prevsnapshot
. Bu nedenle, üzerinde Get Page Ranges
aynı kısıtlamalar için Incremental Copy Blob
de geçerlidir. Özellikle, anlık görüntüleri artan sırada kopyalamanız gerekir ve kaynak blob veya Copy Blob
Incremental Copy Blob
kullanılarak Put Blob
yeniden oluşturulursa yeni anlık görüntülerde başarısız olur.
Kopyalanan anlık görüntü tarafından kullanılan ek depolama alanı, kopyalama sırasında aktarılan fark verilerinin boyutudur. Bu boyutu belirlemek için anlık görüntüde bir değişiklik Get Page Ranges
API çağrısı gerçekleştirebilir ve bunu önceki anlık görüntüyle karşılaştırabilirsiniz.
Ayrıca bkz.
Azure Depolama'ya yönelik istekleri yetkilendirme
Durum ve hata kodları
Blob Depolama işlemleri için zaman aşımlarını ayarlama