URL'den Blob Kopyalama
İşlem, Copy Blob From URL
256 mebibayta (MiB) kadar kaynak blob boyutları için blobu depolama hesabındaki bir hedefe zaman uyumlu olarak kopyalar. Bu API, 2018-03-28 sürümünden itibaren kullanılabilir.
bir işlemin kaynağı Copy Blob From URL
, ortak olan veya paylaşılan erişim imzası ile yetkilendirilmiş herhangi bir Azure depolama hesabındaki kaydedilmiş herhangi bir blok blobu olabilir.
İstek
İsteği aşağıdaki gibi oluşturabilirsiniz Copy Blob From URL
. 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.
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-encryption-scope |
İsteğe bağlı. İstek içeriğini şifrelemek için şifreleme kapsamını gösterir. Bu üst bilgi 2020-12-06 ve sonraki sürümlerde desteklenir. |
x-ms-tags |
İsteğe bağlı. Blobda 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-copy-source-tag-option |
İsteğe bağlı. Olası değerler ve COPY (büyük/küçük harfe duyarlı) değerleridirREPLACE .
REPLACE varsayılan değerdir.belirtilirse COPY , kaynak blobdaki etiketler hedef bloba kopyalanır. Kaynak blob özel olmalı ve isteğin kaynak blobda Blob Etiketlerini Alma işlemine ve hedef blobda Blob Etiketlerini Ayarla işlemine izni olmalıdır. Bu, kaynak hesaptaki işleme ek bir çağrıya Get Blob Tags neden olabilir.REPLACE , üst bilginin hedef blobda belirttiği etiketleri x-ms-tags ayarlar. Etiket belirtilip x-ms-tags REPLACE belirtilmiyorsa, hedef blobda hiçbir etiket ayarlanamaz. ve x-ms-tags belirtilmesi COPY 409 (Çakışma) hatasına neden olur.2021-04-10 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 URL'sini belirtir. Değer, blob belirten 2 kibibayt (KiB) uzunluğunda bir URL olabilir. Değer, istek URI'sinde göründüğü gibi URL ile kodlanmış olmalıdır. Kaynak blob ortak olmalıdır veya paylaşılan erişim imzası aracılığıyla yetkilendirilmelidir. Kaynak blob genel ise, işlemi gerçekleştirmek için yetkilendirme gerekmez. Kaynak blobun boyutu 256 MiB'den büyükse istek 409 (Çakışma) hatasıyla başarısız olur. Kaynak blobun blob türü blok blobu olmalıdır. 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> |
x-ms-copy-source-authorization: <scheme> <signature> |
İsteğe bağlı. Kopyalama kaynağı için yetkilendirme düzenini ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama isteklerini yetkilendirme. Microsoft Entra için yalnızca şema taşıyıcı desteklenir. Bu üst bilgi 2020-10-02 ve sonraki sürümlerde desteklenir. |
x-ms-requires-sync:true |
Gereklidir. Bunun zaman uyumsuz Copy Blob From URL işlem yerine zaman uyumlu Copy Blob bir işlem olduğunu gösterir. |
x-ms-source-content-md5 |
İsteğe bağlı. URI'den blob içeriğinin MD5 karması belirtir. Bu karma, verilerin URI'den taşınması sırasında blobun bütünlüğünü doğrulamak için kullanılır. Bu üst bilgi belirtildiğinde, depolama hizmeti kopyalama kaynağından gelen içeriğin karması ile bu üst bilgi değerini karşılaştırır. MD5 karması blobla birlikte depolanmaz. İki karma eşleşmezse işlem 400 (Hatalı İstek) hata koduyla başarısız olur. |
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 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 kiralanmış blob için etkin, sonsuz bir kira belirtmelidir. Sonlu süreli kiralama kimliği 412 durum koduyla başarısız oluyor (Ö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ına sahip 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 2017-04-17 ve üzeri sürüme sahip 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 Hot , Cool , Cold veya Archive değerleridir.
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ı. |
İstek gövdesi
Yok.
Yanıt
Yanıt bir HTTP durum kodu ve yanıt üst bilgileri kümesi 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.
Yanıt üst bilgisi | Description |
---|---|
ETag |
Kopyalama tamamlandıysa, hedef blobun değerini içerir ETag . Kopya tamamlanmazsa, kopyanın ETag başında oluşturulan boş blobun değerini içerir.Değer ETag 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. İsteğin sorunlarını gidermek için bunu 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. |
Date |
Hizmetin yanıtı gönderdiği saati gösteren utc tarih/saat değeri. |
x-ms-copy-id: <id> |
Bu kopyalama işleminin dize tanımlayıcısı. |
x-ms-copy-status: <success> |
Kopyalama işleminin durumunu gösterir. değeri success , işlemin başarıyla tamamlandığını gösterir. |
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 mevcutsa 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. |
x-ms-request-server-encrypted: true/false |
true İsteğin içeriğinin belirtilen algoritma aracılığıyla başarıyla şifrelenip şifrelenmediğini olarak ayarlayın. Aksi takdirde, değeri olur false . |
x-ms-encryption-scope |
İstek bir şifreleme kapsamı kullandıysa döndürülür; böylece istemci, isteğin içeriğinin şifreleme kapsamı aracılığıyla başarıyla şifrelenmesini sağlayabilir. |
Yanıt gövdesi
Yok.
Örnek yanıt
Aşağıda blob kopyalama 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: 2018-03-28
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: success
Date: <date>
Yetkilendirme
Azure Depolama'da herhangi bir veri erişimi işlemi çağrılırken yetkilendirme gereklidir. Aşağıdaki tabloda, bir Copy Blob From URL
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 blok blobu | Yes | Yes | Yes |
Aynı depolama hesabında kaynak blok blobu | Yes | Yes | Yes |
Başka bir depolama hesabında kaynak blok blobu | 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 From URL
verebilirsiniz. Farklı bir depolama hesabındaki bir kaynak bloba, SAS belirteci aracılığıyla Okuma (r) izniyle ayrı olarak yetkilendirilmelidir. 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 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ı Copy Blob From URL
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 (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ı
Aynı depolama hesabı içindeki 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
Bir işlemin kaynak ve hedef blobu Copy Blob From URL
bir blok blobu olmalıdır.
Sürüm 2020-10-02 ve sonraki sürümlerde, kopyalama işleminin kaynağı için Microsoft Entra yetkilendirme desteklenir.
İşlem Copy Blob From URL
her zaman kaynak blob'un tamamını kopyalar. Bayt aralığı veya blok kümesi kopyalama desteklenmez.
Kaynak blobu farklı bir ada sahip bir hedef bloba kopyalayabilirsiniz. Hedef blob mevcut bir blok blobu veya kopyalama işleminin oluşturduğu yeni bir blob olabilir.
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 sahip olur.
İşlem ETag
başlatıldığında ve işlem tamamlandığında blok blobunun Copy Blob From URL
değeri değişir.
Blob özelliklerini ve meta verilerini kopyalama
Bir blok blobu kopyalandığında, aşağıdaki sistem özellikleri hedef bloba aynı değerlerle kopyalanır:
Content-Type
Content-Encoding
Content-Language
Content-Length
Cache-Control
Content-MD5
Content-Disposition
Kaynak blob'un kaydedilmiş blok listesi de hedef bloba kopyalanır. Kaydedilmemiş bloklar kopyalanmaz.
Hedef blob her zaman kaynak blobla aynı boyutta olduğundan, hedef blobun üst bilgisinin Content-Length
değeri kaynak blob için bu üst bilginin değeriyle eşleşir.
x-ms-tags
Üst bilgi hedef blob için etiketler sağlıyorsa, bunların sorgu dizesi kodlanmış olması gerekir. Etiket anahtarları ve değerleri , Blob Etiketlerini Ayarla işleminde belirtilen 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 etiketleri sağlamıyorsa, etiketler kaynak blobdan kopyalanır.
Kiralanan blobu kopyalama
İşlem Copy Blob From URL
yalnızca kaynak blobdan okur, bu nedenle kaynak blobun kira durumu önemli değildir.
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 ücretlendirilmeyi 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 istekler için Copy Blob From URL
faturalama kategorisi gösterilmektedir:
İşlem | Depolama hesabı türü | Faturalama kategorisi |
---|---|---|
URL'den Blob Kopyalama (hedef hesap1) | Premium blok blobu Standart genel amaçlı v2 Standart genel amaçlı v1 |
Yazma işlemleri |
Blobu URL'den Kopyalama (kaynak hesap2) | Premium blok blobu Standart genel amaçlı v2 Standart genel amaçlı v1 |
Okuma işlemleri |
1Yazma işlemini başlatmak için hedef hesap bir işlem için ücretlendirilir.
2Kaynak 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.
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.
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