Share via


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 incrementalcopysorgu 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 incrementalcopyolarak 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-Matchdeğ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 bayarlanmalı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 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 Blobve Delete Blobiş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 Blobde geçerlidir. Özellikle, anlık görüntüleri artan sırada kopyalamanız gerekir ve kaynak blob veya Copy BlobIncremental 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