Aracılığıyla paylaş


Dosya Kopyala

İşlem bir Copy File blobu veya dosyayı depolama hesabındaki hedef dosyaya kopyalar.

2015-02-21 ve sonraki sürümlerde kullanılabilir.

Protokol kullanılabilirliği

Etkin dosya paylaşımı protokolü Kullanılabilir
SMB Evet
NFS No

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Copy File . HTTPS kullanmanızı öneririz.

2013-08-15 sürümünden başlayarak, kaynak dosyayla aynı hesaptaysa hedef dosya için paylaşılan erişim imzası belirtebilirsiniz. 2015-04-05 sürümünden başlayarak, hedef dosya farklı bir depolama hesabındaysa, paylaşılan erişim imzası da belirtebilirsiniz.

Yöntem İstek URI'si HTTP sürümü
PUT https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile HTTP/1.1

İstek URI'sinde gösterilen yol bileşenlerini aşağıdaki gibi kendinizle değiştirin:

Yol bileşeni Açıklama
myaccount Depolama hesabınızın adı.
myshare Dosya paylaşımınızın adı.
mydirectorypath İsteğe bağlı. Üst dizinin yolu.
myfile Dosyanın adı.

Yol adlandırma kısıtlamaları hakkında ayrıntılı bilgi için bkz. Paylaşımları, dizinleri, dosyaları ve meta verileri adlandırma ve buna başvurma.

URI parametreleri

İstek URI'sinde aşağıdaki ek parametreleri belirtebilirsiniz:

Parametre Açıklama
timeout İsteğe bağlı. Zaman aşımı parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Azure Dosyalar 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. Bu istek için kullanılacak işlemin sürümünü belirtir. Bu işlem yalnızca 2015-02-21 ve sonraki sürümlerde kullanılabilir.

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ı. Dosyayla ilişkilendirilmiş ad/değer çiftlerini meta veri olarak belirtir. Ad/değer çifti belirtilmezse, işlem meta verileri kaynak blobdan veya dosyadan hedef dosyaya kopyalar. Bir veya daha fazla ad/değer çifti belirtilirse, hedef dosya belirtilen meta verilerle oluşturulur ve meta veriler kaynak blobdan veya dosyadan kopyalanmaz. Meta veri adları , C# tanımlayıcıları için adlandırma kurallarına uymalıdır.

Azure Dosyalar aracılığıyla belirtilen dosya meta verilerine SMB istemcisinden erişilmediğini unutmayın.
x-ms-copy-source:name Gereklidir. En çok 2 kibibayt (KiB) uzunluğunda olan kaynak dosyanın veya blobun URL'sini belirtir.

Bir dosyayı aynı depolama hesabındaki başka bir dosyaya kopyalamak için, kaynak dosyayı yetkilendirmek için paylaşılan bir anahtar kullanabilirsiniz. Başka bir depolama hesabından dosya kopyaliyorsanız veya aynı depolama hesabından veya başka bir depolama hesabından bir blob kopyaliyorsanız, paylaşılan erişim imzası kullanarak kaynak dosyayı veya blobu yetkilendirmeniz gerekir. Kaynak bir genel blob ise, kopyalama işlemini gerçekleştirmek için yetkilendirme gerekmez. Paylaşım anlık görüntüsünde bir dosyayı kopyalama kaynağı olarak da belirtebilirsiniz.

Aşağıda kaynak nesne URL'lerinin bazı örnekleri verilmiştir:
  • https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile
  • https://myaccount.blob.core.windows.net/mycontainer/myblob?sastoken
  • http://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sharesnapshot=<DateTime>
x-ms-lease-id:<ID> Hedef dosyanın etkin bir kirası varsa gereklidir. Sürüm 2019-02-02 ve üzeri için kullanılabilir. Bu üst bilgi için belirtilen kira kimliği, hedef dosyanın 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 dosya ş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).
x-ms-file-permission-copy-mode: { source ¦ override } İsteğe bağlı. Sürüm 2019-07-07 ve üzeri için kullanılabilir. Dosyanın güvenlik tanımlayıcısının kopyalama davranışını belirler:
  • source: Hedef dosyadaki güvenlik tanımlayıcısı kaynak dosyadan kopyalanır.
  • override: Hedef dosyadaki güvenlik tanımlayıcısı veya x-ms-file-permission-key üst bilgisi aracılığıyla x-ms-file-permission belirlenir.
x-ms-file-permission olarak override belirtilirse ve x-ms-file-permission-key belirtilmezse x-ms-file-permission-copy-mode gereklidir. Sürüm 2019-07-07 ve üzeri için kullanılabilir. Bu izin, Güvenlik Tanımlayıcısı Tanım Dili'nde (SDDL) belirtilen dosyanın güvenlik tanımlayıcısıdır. İzin boyutu 8 kibibayt (KiB) veya daha azsa bu üst bilgiyi kullanabilirsiniz. Aksi takdirde kullanabilirsiniz x-ms-file-permission-key. Belirtilirse, bir sahip, grup ve isteğe bağlı erişim denetim listesi (DACL) olmalıdır.

veya'lerinden x-ms-file-permissionx-ms-file-permission-key yalnızca birinin belirtilebileceğini unutmayın.
x-ms-file-permission-key olarak override belirtilirse ve x-ms-file-permission belirtilmezse x-ms-file-permission-copy-mode gereklidir. Sürüm 2019-07-07 ve üzeri için kullanılabilir. Bu üst bilgi, dosya için ayarlanacak iznin anahtarını belirtir. bu anahtarı işlemini kullanarak Create Permission oluşturabilirsiniz.

veya'lerinden x-ms-file-permissionx-ms-file-permission-key yalnızca birinin belirtilebileceğini unutmayın.
x-ms-file-copy-ignore-readonly İsteğe bağlı. Sürüm 2019-07-07 ve üzeri için kullanılabilir. Bu Boole değeri, önceden var olan bir hedef dosyadaki özniteliğine ReadOnly uyulup uyulmayacağını belirtir. bu ise truekopyalama işlemi başarılı olur. Aksi takdirde, hedefte öznitelik kümesine ReadOnly sahip önceki bir dosya kopyalama işleminin başarısız olmasına neden olur.
x-ms-file-attributes İsteğe bağlı. Sürüm 2019-07-07 ve üzeri için kullanılabilir. Bu üst bilgi, hedef dosyada ayarlanacak dosya sistemi özniteliklerini belirtir. Kullanılabilir özniteliklerin listesine bakın. Kaynak dosyadaki öznitelikleri hedef dosyaya kopyalamak için değerini source kullanabilirsiniz. Hedef dosyadaki tüm öznitelikleri temizlemek için değerini none kullanabilirsiniz.
x-ms-file-creation-time İsteğe bağlı. Sürüm 2019-07-07 ve üzeri için kullanılabilir. Bu üst bilgi, hedef dosyada ayarlanacağı oluşturma zamanı özelliğini UTC olarak belirtir. Kaynak dosyadan hedef dosyaya oluşturma zamanını kopyalamak için değerini source kullanabilirsiniz.
x-ms-file-last-write-time İsteğe bağlı. Sürüm 2019-07-07 ve üzeri için kullanılabilir. Bu üst bilgi, hedef dosyada ayarlanacağı son yazma zamanı (UTC) için özelliğini belirtir. Kaynak dosyadan hedef dosyaya son yazma zamanını kopyalamak için değerini source kullanabilirsiniz.
x-ms-file-copy-set-archive İsteğe bağlı. Sürüm 2019-07-07 ve üzeri için kullanılabilir. Bu Boole değeri, üst bilgi değerinden bağımsız olarak özniteliğin Archive ayarlanıp ayarlanmayacağını x-ms-file-attributes belirtir.
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. Daha fazla bilgi için bkz. İzleme Azure Blob Depolama.
x-ms-file-change-time: { <DateTime> ¦ source } İsteğe bağlı. Sürüm 2021-06-08 ve üzeri. DOSYANıN ISO 8601 biçiminde biçimlendirilmiş UTC değiştirme zamanı özelliği. değeri source , kaynak dosyadan hedef dosyaya değişiklik süresini kopyalamak için kullanılabilir. Varsayılan zaman damgası, isteğin zamanıdır.
x-ms-file-request-intent Üst bilgi bir OAuth belirteci belirtiyorsa Authorization gereklidir. Kabul edilebilir değer: backup. Bu üst bilgi, üst bilgi kullanılarak Authorization yetkilendirilen Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action kimliğe atanan RBAC ilkesine eklenmişse veya Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action izni verilmesi gerektiğini belirtir. Sürüm 2022-11-02 ve üzeri için kullanılabilir.
x-ms-allow-trailing-dot: { <Boolean> } İsteğe bağlı. Sürüm 2022-11-02 ve üzeri. Boole değeri, istek URL'sinde sondaki bir noktanın kırpılıp kırpılmaması gerektiğini belirtir. Daha fazla bilgi için bkz . Paylaşımları, dizinleri, dosyaları ve meta verileri adlandırma ve buna başvurma.
x-ms-source-allow-trailing-dot: { <Boolean> } İsteğe bağlı. Sürüm 2022-11-02 ve üzeri. Boole değeri, kaynak URL'de bulunan bir noktanın kırpılıp kırpılmaması gerektiğini belirtir. Bu üst bilgi yalnızca kopyalama kaynağı bir Azure Dosyası ise belirtilmelidir. Bu üst bilgi başka bir kopyalama kaynağı türü için desteklenmez. Daha fazla bilgi için bkz . Paylaşımları, dizinleri, dosyaları ve meta verileri adlandırma ve buna başvurma.

İ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 ayrıca ek standart HTTP üst bilgileri içerir. Tüm standart üst bilgiler HTTP/1.1 protokol belirtimine uygundur.

Yanıt üst bilgisi Açıklama
ETag Kopyalama işlemi tamamlandıysa, hedef dosyanın değerini içerir ETag . Kopyalama işlemi tamamlanmazsa, işlemin başlangıcında oluşturulan boş dosyanın değerini içerir ETag .
Last-Modified Hedef dosyaya kopyalama işleminin bittiği tarihi/saati döndürür.
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar. İstekle ilgili sorunları gidermek için bu üst bilgiyi 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 Azure Dosyalar 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şlemi için bir dize tanımlayıcısı sağlar. Bu kopyalama işleminin durumunu denetlemek için veya Get File Properties ile Get File kullanın ya da bekleyen kopyalama işlemini iptal etmek için Abort Copy File öğesine geçirin.
x-ms-copy-status: <success ¦ pending> Kopyalama işleminin durumunu şu değerlerle gösterir:

- success: Kopyalama işlemi başarıyla tamamlandı.
- pending: Kopyalama işlemi devam ediyor.
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 eşittir x-ms-client-request-id . İstekte x-ms-client-request-id üst bilgi yoksa, yanıtta bu üst bilgi mevcut olmaz.

Yanıt gövdesi

Hiçbiri

Örnek yanıt

Response Status:  
HTTP/1.1 202 Accepted  
  
Response Headers:   
Last-Modified: <date>   
ETag: "0x8CEB669D794AFE2"  
Server: Windows-Azure-File/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  
Date: <date>  

Yetkilendirme

Bu işlem hesap sahibi veya hedef dosyaya veya paylaşımına yazma izni olan paylaşılan erişim imzasına sahip bir istemci tarafından çağrılabilir. İstekte belirtilen paylaşılan erişim imzasının yalnızca hedef dosyaya uygulandığını unutmayın.

kaynak dosyaya veya bloba erişim, istek üst bilgisinin x-ms-copy-sourceayrıntılarında açıklandığı gibi ayrı olarak yetkilendirilir.

Aşağıdaki tabloda, bir Copy File işlemin hedef ve kaynak nesnelerinin nasıl yetkilendirilebileceği açıklanmaktadır:

File Paylaşılan Anahtar veya Paylaşılan Anahtar Lite ile Yetkilendirme Paylaşılan erişim imzası ile yetkilendirme Yetkilendirme gerektirmeyen ortak nesne
Hedef dosya Yes Evet Geçerli değil
Aynı hesaptaki kaynak dosya Yes Evet Geçerli değil
Başka bir hesaptaki kaynak dosya Hayır Evet Geçerli değil
Aynı hesaptaki veya başka bir hesaptaki kaynak blob Hayır Yes Yes

Dosya sistemi öznitelikleri

Öznitelik Win32 dosya özniteliği Tanım
ReadOnly FILE_ATTRIBUTE_READONLY Dosya salt okunur. Uygulamalar dosyayı okuyabilir ancak dosyaya yazamaz veya silemez.
Hidden FILE_ATTRIBUTE_HIDDEN Dosya gizlidir. Sıradan bir dizin listesine dahil değildir.
System FILE_ATTRIBUTE_SYSTEM İşletim sistemi dosyanın bir bölümünü veya dosyayı özel olarak kullanır.
None FILE_ATTRIBUTE_NORMAL Dosyanın ayarlanmış başka öznitelikleri yok. Bu öznitelik yalnızca tek başına kullanıldığında geçerlidir.
Archive FILE_ATTRIBUTE_ARCHIVE Dosya bir arşiv dosyasıdır. Uygulamalar genellikle dosyaları yedekleme veya kaldırma amacıyla işaretlemek için bu özniteliği kullanır.
Temporary FILE_ATTRIBUTE_TEMPORARY Dosya geçici depolama için kullanılıyor.
Offline FILE_ATTRIBUTE_OFFLINE Dosyanın verileri hemen kullanılamaz. Bu dosya sistemi özniteliği çoğunlukla Windows ile uyumluluk sağlar. Azure Dosyalar çevrimdışı depolama seçenekleriyle desteklemez.
NotContentIndexed FILE_ATTRIBUTE_NOT_CONTENT_INDEXED İçerik dizin oluşturma hizmeti dosyanın dizinini oluşturmaz.
NoScrubData FILE_ATTRIBUTE_NO_SCRUB_DATA Arka plan veri bütünlüğü tarayıcısı kullanıcı veri akışını okumaz. Bu dosya sistemi özniteliği çoğunlukla Windows ile uyumluluk sağlar.

Açıklamalar

İşlem Copy File zaman uyumsuz olarak tamamlanabilir. Kopyalama işleminin durumunu denetlemek veya iptal etmek için yanıt üst bilgisinin döndürdüğü kopyalama kimliğini x-ms-copy-id kullanabilirsiniz. Azure Dosyalar dosyaları en iyi çaba temelinde kopyalar.

Hedef dosya varsa, üzerine yazılır. Kopyalama işlemi devam ederken hedef dosyayı değiştiremezsiniz.

İşlem Copy File her zaman kaynak blob veya dosyanın tamamını kopyalar. Bayt aralığı veya blok kümesi kopyalama desteklenmez.

İşlemin Copy File kaynağı, paylaşım anlık görüntüsünde bulunan bir dosya olabilir. İşlemin Copy File hedefi, paylaşım anlık görüntüsünde bulunan bir dosya olamaz.

Kopyalama işleminin kaynağı değerler sağladığında ETag , işlem devam ederken kaynakta herhangi bir değişiklik olursa başarısız olur. Kopyalama işlemi devam ederken hedef dosyayı değiştirme girişimi 409 (Çakışma) durum koduyla başarısız olur.

ETag İşlem başladığında hedef dosyanın değeri değişirCopy File. Kopyalama işlemi sırasında sık sık değişmeye devam eder.

Özellikleri ve meta verileri kopyalama

Bir blob veya dosya kopyalandığında, aşağıdaki sistem özellikleri hedef dosyaya aynı değerlerle kopyalanır:

  • Content-Type
  • Content-Encoding
  • Content-Language
  • Content-Length
  • Cache-Control
  • Content-MD5
  • Content-Disposition

Hedef dosya her zaman kaynak blob veya dosyayla aynı boyuttadır. Hedef dosyanın üst bilgisinin Content-Length değeri, kaynak blob veya dosya için bu üst bilginin değeriyle eşleşir.

Kiralanan blobu veya dosyayı bir dosyaya kopyalama

İşlem Copy File yalnızca kaynak blobdan veya dosyadan okur, bu nedenle kaynak nesnedeki kiralama işlemi etkilemez. İşlem Copy File başlatıldığında kaynak blobun veya dosyanın değerini kaydeder ETag . ETag Kopyalama işlemi tamamlanmadan önce değer değişirse işlem başarısız olur. Kopyalama işlemi sırasında dosyayı kiralayarak dosyanın kaynak blobundaki değişiklikleri önleyebilirsiniz.

Hedef dosyanın etkin bir sonsuz kirası varsa, işleme yapılan çağrıda Copy File kira kimliğini belirtmeniz gerekir. Kopyalama işlemi beklemedeyken, hedef dosyadaki herhangi bir kiralama işlemi 409 (Çakışma) durum koduyla başarısız olur. Kaynaktan farklı bir ada sahip bir hedef dosyaya kopyalama veya kaynakla aynı ada sahip bir hedef dosyaya kopyalama işlemleri sırasında hedef dosyadaki sonsuz kiralama bu şekilde kilitlenir. İstemci henüz var olmayan bir dosyada kira kimliği belirtirse, Azure Dosyalar 412 durum kodunu döndürür (Önkoşul Başarısız oldu).

Bekleyen kopyalama işlemiyle çalışma

İşlem, Copy File dosyaları zaman uyumsuz olarak kopyalamayı tamamlayabilir. Döndürülen durum koduna Copy File göre 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ı. Kopyalama işlemi bitene veya başarısız olana kadar incelemek x-ms-copy-status için kullanarak Get File Properties hedef blobu yoklama.
4xx, 500 veya 503 Kopyalama işlemi başarısız oldu.

Bir Copy File işlem sırasında ve sonrasında, hedef dosyanın özellikleri işlemin kopya kimliğini Copy File ve kaynak blobun veya dosyanın URL'sini içerir. İşlem tamamlandığında, Azure Dosyalar hedef dosyanın özelliklerine zaman ve sonuç değerini (success, failedveya aborted) yazar. İşlemin bir failed sonucu varsa, x-ms-copy-status-description üst bilgi bir hata ayrıntı dizesi içerir.

Bekleyen Copy File bir işlemin iki haftalık zaman aşımı vardır. İki hafta zaman aşımına uğradıktan sonra bitmeyen x-ms-copy-status ve alanı 500 (OperationCancelled) olarak ayarlanmış failedx-ms-status-description boş bir dosya bırakan bir kopyalama denemesi. Bir 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 durumlarda, x-ms-copy-status-description aralıklı hataları açıklar.

Kopyalama işlemi sırasında hedef dosyayı değiştirme girişimleri 409 (Çakışma), "Devam Eden Dosyayı Kopyala" durum koduyla başarısız olur.

Bir Abort Copy File işlemi çağırırsanız bir x-ms-copy-status:aborted üst bilgi görürsünüz. Hedef dosyada bozulmamış meta veriler ve 0 baytlık bir dosya uzunluğu bulunur. İşlemi yeniden denemek için Copy File özgün çağrıyı tekrarlayabilirsiniz.

Faturalama

İşlemin hedef hesabından, işlemi Copy File başlatmak için bir işlem için ücret alınır. Hedef hesap, kopyalama işleminin durumunu iptal etmek veya istemek için her istek için bir işlem de doğurabilir.

Kaynak dosya veya 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ği aktarmak için kullandığınız bant genişliği çıkış olarak kaynak hesaba ücretlendirilir. Aynı bölgedeki hesaplar arasında çıkış ücretsizdir.

Ayrıca bkz.