Copy Blob

Operasi Copy Blob menyalin blob ke tujuan dalam akun penyimpanan.

Dalam versi 2012-02-12 dan yang lebih baru, sumber untuk Copy Blob operasi dapat menjadi blob yang diterapkan di akun penyimpanan Azure apa pun.

Dimulai dengan versi 2015-02-21, sumber untuk Copy Blob operasi dapat menjadi file Azure di akun penyimpanan Azure apa pun.

Catatan

Hanya akun penyimpanan yang dibuat pada atau setelah 7 Juni 2012, yang memungkinkan Copy Blob operasi untuk menyalin dari akun penyimpanan lain.

Minta

Anda dapat membuat Copy Blob permintaan sebagai berikut. Kami merekomendasikan HTTPS. Ganti myaccount dengan nama akun penyimpanan Anda, mycontainer dengan nama kontainer Anda, dan myblob dengan nama blob tujuan Anda.

Dimulai dengan versi 2013-08-15, Anda dapat menentukan tanda tangan akses bersama (SAS) untuk blob tujuan jika berada di akun yang sama dengan blob sumber. Dimulai dengan versi 2015-04-05, Anda juga dapat menentukan tanda tangan akses bersama untuk blob tujuan jika berada di akun penyimpanan yang berbeda.

URI permintaan metode PUT Versi HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob HTTP/1.1

URI untuk layanan penyimpanan yang ditiru

Saat Anda membuat permintaan terhadap layanan penyimpanan yang ditimulasi, tentukan nama host emulator dan port Azure Blob Storage sebagai 127.0.0.1:10000, diikuti dengan nama akun penyimpanan yang ditimulasi:

URI permintaan metode PUT Versi HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob HTTP/1.1

Untuk informasi selengkapnya, lihat Gunakan emulator Azurite untuk pengembangan Microsoft Azure Storage lokal.

Parameter URI

Anda dapat menentukan parameter tambahan berikut pada URI permintaan:

Parameter Deskripsi
timeout Opsional. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur batas waktu untuk operasi Blob Storage.

Header permintaan

Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional:

Meminta kop Deskripsi
Authorization Wajib diisi. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
Date atau x-ms-date Wajib diisi. Menentukan Waktu Universal Terkoordinasi (UTC) untuk permintaan tersebut. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
x-ms-version Diperlukan untuk semua permintaan yang diotorisasi. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage.
x-ms-meta-name:value Opsional. Menentukan pasangan nama/nilai yang ditentukan pengguna yang terkait dengan blob. Jika tidak ada pasangan nama/nilai yang ditentukan, operasi menyalin metadata dari blob sumber atau file ke blob tujuan. Jika satu atau beberapa pasangan nama/nilai ditentukan, blob tujuan dibuat dengan metadata yang ditentukan, dan metadata tidak disalin dari blob sumber atau file.

Dimulai dengan versi 2009-09-19, nama metadata harus mematuhi aturan penamaan untuk pengidentifikasi C#. Untuk informasi selengkapnya, lihat Penamaan dan referensi kontainer, blob, dan metadata.
x-ms-tags Opsional. Mengatur tag yang dikodekan string kueri yang diberikan pada blob. Tag tidak disalin dari sumber salinan. Untuk informasi selengkapnya, lihat Keterangan. Didukung dalam versi 2019-12-12 dan yang lebih baru.
x-ms-source-if-modified-since Pilihan. Nilai DateTime. Tentukan header kondisional ini untuk menyalin blob hanya jika blob sumber telah dimodifikasi sejak tanggal/waktu yang ditentukan. Jika blob sumber belum dimodifikasi, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal). Anda tidak dapat menentukan header ini jika sumbernya adalah file Azure.
x-ms-source-if-unmodified-since Opsional. Nilai DateTime. Tentukan header kondisional ini untuk menyalin blob hanya jika blob sumber belum dimodifikasi sejak tanggal/waktu yang ditentukan. Jika blob sumber telah dimodifikasi, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal). Anda tidak dapat menentukan header ini jika sumbernya adalah file Azure.
x-ms-source-if-match Opsional. Sebuah nilai ETag. Tentukan header kondisional ini untuk menyalin blob sumber hanya jika nilainya ETag cocok dengan nilai yang ditentukan. Jika nilai tidak cocok, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal). Anda tidak dapat menentukan header ini jika sumbernya adalah file Azure.
x-ms-source-if-none-match Opsional. Sebuah nilai ETag. Tentukan header kondisional ini untuk menyalin blob hanya jika nilainya ETag tidak cocok dengan nilai yang ditentukan. Jika nilainya identik, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal). Anda tidak dapat menentukan header ini jika sumbernya adalah file Azure.
If-Modified-Since Opsional. Nilai DateTime. Tentukan header kondisional ini untuk menyalin blob hanya jika blob tujuan telah dimodifikasi sejak tanggal/waktu yang ditentukan. Jika blob tujuan belum dimodifikasi, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal).
If-Unmodified-Since Opsional. Nilai DateTime. Tentukan header kondisional ini untuk menyalin blob hanya jika blob tujuan belum dimodifikasi sejak tanggal/waktu yang ditentukan. Jika blob tujuan telah dimodifikasi, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal).
If-Match Opsional. Sebuah nilai ETag. ETag Tentukan nilai untuk header kondisional ini untuk menyalin blob hanya jika nilai yang ditentukan ETag cocok dengan ETag nilai untuk blob tujuan yang ada. Jika nilai tidak cocok, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal).
If-None-Match Opsional. Nilai ETag , atau karakter kartubebas (*).

ETag Tentukan nilai untuk header kondisional ini untuk menyalin blob hanya jika nilai yang ditentukan ETag tidak cocok dengan ETag nilai untuk blob tujuan.

Tentukan karakter kartubebas (*) untuk melakukan operasi hanya jika blob tujuan tidak ada.

Jika kondisi yang ditentukan tidak terpenuhi, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal).
x-ms-copy-source:name Wajib diisi. Menentukan nama blob atau file sumber.

Dimulai dengan versi 2012-02-12, nilai ini dapat menjadi URL dengan panjang hingga 2 kibibyte (KiB) yang menentukan blob. Nilai harus dikodekan URL seperti yang akan muncul dalam URI permintaan.

Operasi baca pada blob sumber di akun penyimpanan yang sama dapat diotorisasi melalui kunci bersama. Dimulai dengan versi 2017-11-09, Anda juga dapat menggunakan Microsoft Entra ID untuk mengotorisasi operasi baca pada blob sumber. Namun, jika sumbernya adalah blob di akun penyimpanan lain, blob sumber harus bersifat publik, atau akses ke blob tersebut harus diotorisasi melalui tanda tangan akses bersama. Jika blob sumber bersifat publik, tidak ada otorisasi yang diperlukan untuk melakukan operasi penyalinan.

Dimulai dengan versi 2015-02-21, objek sumber dapat menjadi file dalam Azure Files. Jika objek sumber adalah file yang akan disalin ke blob, maka file sumber harus diotorisasi melalui tanda tangan akses bersama, baik berada di akun yang sama atau di akun yang berbeda.

Hanya akun penyimpanan yang dibuat pada atau setelah 7 Juni 2012, yang memungkinkan Copy Blob operasi untuk menyalin dari akun penyimpanan lain.

Berikut adalah beberapa contoh URL objek sumber:

- 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>

Saat objek sumber adalah file dalam Azure Files, URL sumber menggunakan format berikut. Perhatikan bahwa URL harus menyertakan token SAS yang valid untuk file tersebut.

- https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sastoken

Dalam versi sebelum 2012-02-12, blob hanya dapat disalin dalam akun yang sama, dan nama sumber dapat menggunakan format ini:

- Blob dalam kontainer bernama: /accountName/containerName/blobName
- Rekam jepret dalam kontainer bernama: /accountName/containerName/blobName?snapshot=<DateTime>
- Blob dalam kontainer root: /accountName/blobName
- Rekam jepret dalam kontainer root: /accountName/blobName?snapshot=<DateTime>
x-ms-lease-id:<ID> Diperlukan jika blob tujuan memiliki sewa aktif. ID sewa yang ditentukan untuk header ini harus cocok dengan ID sewa blob tujuan. Jika permintaan tidak menyertakan ID sewa atau ID tidak valid, operasi gagal dengan kode status 412 (Prasyarat Gagal).

Jika header ini ditentukan dan blob tujuan saat ini tidak memiliki sewa aktif, operasi gagal dengan kode status 412 (Prasyarat Gagal).

Dalam versi 2012-02-12 dan yang lebih baru, nilai ini harus menentukan sewa tidak terbatas aktif untuk blob sewaan. ID sewa berdurasi terbatas gagal dengan kode status 412 (Prasyarat Gagal).
x-ms-source-lease-id: <ID> Opsional untuk versi sebelum 2012-02-12 (tidak didukung di 2012-02-12 dan yang lebih baru). Tentukan header ini untuk melakukan Copy Blob operasi hanya jika ID sewa yang disediakan cocok dengan ID sewa aktif dari blob sumber.

Jika header ini ditentukan dan blob sumber saat ini tidak memiliki sewa aktif, operasi gagal dengan kode status 412 (Prasyarat Gagal).
x-ms-client-request-id Pilihan. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 KiB yang dicatat dalam log saat pengelogan dikonfigurasi. Kami sangat menyarankan Anda menggunakan header ini untuk menghubungkan aktivitas sisi klien dengan permintaan yang diterima server.
x-ms-access-tier Pilihan. Menentukan tingkat yang akan ditetapkan pada blob target. Header ini untuk blob halaman pada akun premium hanya dengan versi 2017-04-17 dan yang lebih baru. Untuk daftar lengkap tingkatan yang didukung, lihat Penyimpanan premium berkinerja tinggi dan disk terkelola untuk VM. Header ini didukung pada versi 2018-11-09 dan yang lebih baru untuk blob blok. Tingkatan blob blok didukung pada akun Blob Storage atau General Purpose v2. Nilai yang valid adalah Hot, Cool, Cold dan Archive. Catatan:Cold tingkat didukung untuk versi 2021-12-02 dan yang lebih baru. Untuk informasi mendetail tentang tingkatan blob blok, lihat Tingkat penyimpanan panas, dingin, dan arsip.
x-ms-rehydrate-priority Pilihan. Menunjukkan prioritas untuk merehidrasi blob yang diarsipkan. Header ini didukung pada versi 2019-02-02 dan yang lebih baru untuk blob blok. Nilai yang berlaku adalah High atau Standard. Anda dapat mengatur prioritas pada blob hanya sekali. Header ini akan diabaikan pada permintaan berikutnya ke blob yang sama. Prioritas default tanpa header ini adalah Standard.
x-ms-seal-blob Opsional. Didukung pada versi 2019-12-12 atau yang lebih baru. Header ini hanya berlaku untuk blob tambahan. Ini menyegel blob tujuan setelah operasi penyalinan selesai.
x-ms-immutability-policy-until-date Versi 2020-06-12 dan yang lebih baru. Menentukan tanggal retensi-hingga yang akan diatur pada blob. Ini adalah tanggal hingga blob dapat dilindungi dari modifikasi atau penghapusan. Ini mengikuti format RFC1123.
x-ms-immutability-policy-mode Versi 2020-06-12 dan yang lebih baru. Menentukan mode kebijakan imutabilitas yang akan diatur pada blob. Nilai yang berlaku adalah unlocked atau locked. Nilai unlocked menunjukkan bahwa pengguna dapat mengubah kebijakan dengan meningkatkan atau mengurangi tanggal retensi hingga. Nilai locked menunjukkan bahwa tindakan ini dilarang.
x-ms-legal-hold Versi 2020-06-12 dan yang lebih baru. Menentukan penahanan legal yang akan ditetapkan pada blob. Nilai yang berlaku adalah true atau false.

Operasi ini mendukung header bersyarat x-ms-if-tags dan x-ms-source-if-tags berhasil hanya jika kondisi yang ditentukan terpenuhi. Untuk informasi selengkapnya, lihat Menentukan header kondisional untuk operasi Blob Storage.

Isi permintaan

Tidak ada.

Respons

Respons mencakup kode status HTTP dan sekumpulan header respons.

Kode status

Dalam versi 2012-02-12 dan yang lebih baru, operasi yang berhasil mengembalikan kode status 202 (Diterima).

Dalam versi sebelum 2012-02-12, operasi yang berhasil mengembalikan kode status 201 (Dibuat).

Untuk informasi tentang kode status, lihat Kode status dan kesalahan.

Header respons

Respons untuk operasi ini mencakup header berikut. Respons juga dapat mencakup header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1.

Header respons Deskripsi
ETag Dalam versi 2012-02-12 dan yang lebih baru, jika salinan selesai, header ini berisi ETag nilai blob tujuan. Jika salinan tidak selesai, header berisi ETag nilai blob kosong yang dibuat di awal operasi salin.

Dalam versi sebelum 2012-02-12, header ini mengembalikan ETag nilai untuk blob tujuan.

Dalam versi 2011-08-18 dan yang lebih baru, ETag nilainya dalam tanda kutip.
Last-Modified Mengembalikan tanggal/waktu operasi penyalinan ke blob tujuan selesai.
x-ms-request-id Secara unik mengidentifikasi permintaan yang dibuat. Anda dapat menggunakan header ini untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Memecahkan masalah operasi API.
x-ms-version Menunjukkan versi Blob Storage yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru.
Date Nilai tanggal/waktu UTC yang menunjukkan waktu layanan mengirim respons.
x-ms-copy-id: <id> Versi 2012-02-12 dan yang lebih baru. Menyediakan pengidentifikasi string untuk operasi penyalinan ini. Gunakan dengan Get Blob atau Get Blob Properties untuk memeriksa status operasi salin ini, atau teruskan ke Abort Copy Blob untuk membatalkan operasi salinan yang tertunda.
x-ms-copy-status: <success ¦ pending> Versi 2012-02-12 dan yang lebih baru. Menunjukkan status operasi salin, dengan nilai-nilai ini:

- success: Operasi berhasil diselesaikan.
- pending: Operasi sedang berlangsung.
x-ms-version-id: <DateTime> Versi 2019-12-12 dan yang lebih baru. Secara unik mengidentifikasi blob berdasarkan versinya. Anda dapat menggunakan nilai buram ini dalam permintaan berikutnya untuk mengakses versi blob ini.
x-ms-client-request-id Dapat digunakan untuk memecahkan masalah permintaan dan respons yang sesuai. Nilai header ini sama dengan nilai x-ms-client-request-id header, jika ada dalam permintaan dan nilainya paling banyak 1.024 karakter ASCII yang terlihat. x-ms-client-request-id Jika header tidak ada dalam permintaan, header ini tidak akan ada dalam respons.

Isi Respons

Tidak ada.

Respons sampel

Kode berikut adalah respons sampel untuk permintaan menyalin blob:

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>  
  

Authorization

Otorisasi diperlukan saat memanggil operasi akses data apa pun di Azure Storage. Tabel berikut ini menjelaskan bagaimana tujuan dan objek sumber untuk Copy Blob operasi dapat diotorisasi:

Tipe objek otorisasi Microsoft Entra ID Otorisasi Tanda Tangan Akses Bersama (SAS) Otorisasi Kunci Bersama (atau Shared Key Lite)
Blob tujuan Ya Ya Ya
Blob sumber di akun penyimpanan yang sama Ya Ya Ya
Blob sumber di akun penyimpanan lain Tidak Ya Tidak

Jika permintaan menentukan tag di x-ms-tags header permintaan, pemanggil harus memenuhi persyaratan otorisasi operasi Atur Tag Blob .

Anda dapat mengotorisasi operasi seperti yang Copy Blob dijelaskan di bawah ini. Perhatikan bahwa blob sumber di akun penyimpanan yang berbeda harus diotorisasi secara terpisah melalui token SAS dengan izin Baca (r). Untuk informasi selengkapnya tentang otorisasi blob sumber, lihat detail untuk header x-ms-copy-sourcepermintaan .

Azure Storage mendukung penggunaan Microsoft Entra ID untuk mengotorisasi permintaan ke data blob. Dengan Microsoft Entra ID, Anda dapat menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk memberikan izin kepada prinsip keamanan. Prinsip keamanan dapat berupa pengguna, grup, perwakilan layanan aplikasi, atau identitas terkelola Azure. Prinsip keamanan diautentikasi oleh Microsoft Entra ID untuk mengembalikan token OAuth 2.0. Token kemudian dapat digunakan untuk mengotorisasi permintaan terhadap Blob service.

Untuk mempelajari selengkapnya tentang otorisasi menggunakan Microsoft Entra ID, lihat Mengotorisasi akses ke blob menggunakan Microsoft Entra ID.

Izin

Tercantum di bawah ini adalah tindakan RBAC yang diperlukan bagi pengguna, grup, atau perwakilan layanan Microsoft Entra untuk memanggil Copy Blob operasi, dan peran Azure RBAC bawaan paling tidak istimewa yang mencakup tindakan ini:

Blob tujuan

Blob sumber dalam akun penyimpanan yang sama

Untuk mempelajari selengkapnya tentang menetapkan peran menggunakan Azure RBAC, lihat Menetapkan peran Azure untuk akses ke data blob.

Keterangan

Dalam versi 2012-02-12 dan yang lebih baru, Copy Blob operasi dapat selesai secara asinkron. Operasi ini mengembalikan ID salinan yang dapat Anda gunakan untuk memeriksa atau membatalkan operasi salin. Karena sifat asinkron dari operasi salin, Blob Storage menyalin blob berdasarkan upaya terbaik. Blob service menyalin blob ketika sumber daya server tidak digunakan oleh tugas lain, sehingga salinan tidak dijamin akan segera dimulai atau selesai dalam jangka waktu yang ditentukan.

Blob sumber untuk operasi salin dapat berupa blob blok, blob penambahan, blob halaman, atau rekam jepret. Jika blob tujuan sudah ada, itu harus berasal dari jenis blob yang sama dengan blob sumber. Blob tujuan yang ada akan ditimpa. Anda tidak dapat mengubah blob tujuan saat operasi salin sedang berlangsung.

Dalam versi 2015-02-21 dan yang lebih baru, sumber untuk operasi salin juga dapat menjadi file dalam Azure Files. Jika sumber adalah file, tujuannya harus berupa blob blok.

Beberapa operasi tertunda Copy Blob dalam akun mungkin diproses secara berurutan. Blob tujuan hanya dapat memiliki satu operasi yang luar Copy Blob biasa. Dengan kata lain, blob tidak dapat menjadi tujuan untuk beberapa operasi yang tertunda Copy Blob . Upaya untuk menyalin blob ke blob tujuan yang sudah memiliki operasi salin yang tertunda gagal dengan kode status 409 (Konflik).

Hanya akun penyimpanan yang dibuat pada atau setelah 7 Juni 2012, yang memungkinkan Copy Blob operasi untuk menyalin dari akun penyimpanan lain. Upaya untuk menyalin dari akun penyimpanan lain ke akun yang dibuat sebelum 7 Juni 2012, gagal dengan kode status 400 (Permintaan Buruk).

Operasi Copy Blob selalu menyalin seluruh blob atau file sumber. Menyalin rentang byte atau sekumpulan blok tidak didukung.

Copy Blob Operasi dapat mengambil salah satu formulir berikut:

  • Anda dapat menyalin blob sumber ke blob tujuan yang memiliki nama berbeda. Blob tujuan dapat berupa blob yang ada dari jenis blob yang sama (blok, tambahkan, atau halaman), atau bisa menjadi blob baru yang dibuat operasi salin.

  • Anda dapat menyalin blob sumber ke blob tujuan yang memiliki nama yang sama, secara efektif menggantikan blob tujuan. Operasi penyalinan semacam itu menghapus blok yang tidak dilakukan dan menimpa metadata blob.

  • Anda dapat menyalin file sumber di Azure Files ke blob tujuan. Blob tujuan dapat menjadi blob blok yang ada, atau dapat menjadi blob blok baru yang dibuat operasi salin. Menyalin dari file ke blb halaman atau blob penambahan tidak didukung.

  • Anda dapat menyalin rekam jepret melalui blob dasarnya. Dengan mempromosikan snapshot ke posisi blob dasar, Anda dapat memulihkan versi blob yang lebih lama.

  • Anda dapat menyalin rekam jepret ke blob tujuan yang memiliki nama yang berbeda. Blob tujuan yang dihasilkan adalah blob yang dapat ditulis dan bukan snapshot.

Saat Anda menyalin dari blob halaman, Blob Storage membuat blob halaman tujuan dengan panjang blob sumber. Awalnya, blob halaman berisi semua nol. Kemudian rentang halaman sumber dijumlahkan, dan rentang yang tidak kosong disalin.

Untuk blob blok atau blob penambahan, Blob Storage membuat blob yang diterapkan dengan panjang nol sebelum kembali dari operasi ini.

Saat Anda menyalin dari blob blok, semua blok yang diterapkan dan ID bloknya disalin. Blok yang tidak dikomit tidak disalin. Di akhir operasi salin, blob tujuan memiliki jumlah blok berkomitmen yang sama dengan sumbernya.

Saat Anda menyalin dari blob penambahan, semua blok yang diterapkan akan disalin. Di akhir operasi salin, blob tujuan akan memiliki kurang dari atau jumlah blok yang diterapkan yang sama dengan blob sumber.

Untuk semua jenis blob, Anda dapat memanggil Get Blob atau Get Blob Properties pada blob tujuan untuk memeriksa status operasi salin. Blob akhir akan dilakukan ketika operasi salin selesai.

Ketika sumber operasi salin menyediakan ETag nilai, setiap perubahan pada sumber saat operasi salin sedang berlangsung akan menyebabkan operasi tersebut gagal. Upaya untuk mengubah blob tujuan saat salinan sedang berlangsung akan gagal dengan kode status 409 (Konflik). Jika blob tujuan memiliki sewa tak terbatas, ID sewa harus diteruskan ke Copy Blob. Sewa berkala terbatas tidak diperbolehkan.

Nilai ETag untuk blob blok berubah ketika Copy Blob operasi dimulai dan ketika operasi selesai. Nilai ETag untuk blob halaman berubah ketika Copy Blob operasi dimulai, dan terus sering berubah selama operasi salin. Konten blob blok terlihat melalui Get perintah hanya setelah operasi penyalinan penuh selesai.

Menyalin properti blob, tag, dan metadata

Saat blob disalin, properti sistem berikut disalin ke blob tujuan yang memiliki nilai yang sama:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

  • x-ms-blob-sequence-number (hanya untuk blob halaman)

  • x-ms-committed-block-count (hanya untuk blob tambahan, dan hanya untuk versi 2015-02-21)

Daftar blokir yang diterapkan blob sumber juga disalin ke blob tujuan, jika blob adalah blob blok. Blok yang tidak dikomit tidak disalin.

Blob tujuan selalu berukuran sama dengan blob sumber. Nilai Content-Length header untuk blob tujuan cocok dengan nilai header tersebut untuk blob sumber.

Ketika blob sumber dan blob tujuan sama, Copy Blob menghapus blok yang tidak dikomit. Jika metadata ditentukan dalam kasus ini, metadata yang ada ditimpa dengan metadata baru.

x-ms-tags Jika header menyediakan tag untuk blob tujuan, header tersebut harus dikodekan dengan string kueri. Kunci dan nilai tag harus sesuai dengan persyaratan penamaan dan panjang, seperti yang ditentukan dalam Atur Tag Blob.

Header x-ms-tags dapat berisi hingga 2 kilobit tag. Jika Anda memerlukan lebih banyak tag, gunakan Set Blob Tags operasi .

x-ms-tags Jika header tidak menyediakan tag, maka tag tidak disalin dari blob sumber.

Menyalin blob sewaan

Operasi Copy Blob hanya membaca dari blob sumber, sehingga status sewa blob sumber tidak masalah. Namun, Copy Blob operasi menyimpan ETag nilai blob sumber saat operasi penyalinan dimulai. ETag Jika nilai berubah sebelum operasi penyalinan selesai, operasi gagal. Anda dapat mencegah perubahan pada blob sumber dengan menyewakannya selama operasi salin.

Jika blob tujuan memiliki sewa tak terbatas aktif, Anda harus menentukan ID sewanya dalam panggilan ke Copy Blob operasi. Jika sewa yang Anda tentukan adalah sewa durasi terbatas aktif, panggilan ini gagal dengan kode status 412 (Prasyarat Gagal). Saat operasi salin tertunda, operasi sewa apa pun pada blob tujuan gagal dengan kode status 409 (Konflik). Sewa tak terbatas pada blob tujuan dikunci dengan cara ini selama operasi salin apakah Anda menyalin ke blob tujuan yang memiliki nama yang berbeda dari sumbernya, menyalin ke blob tujuan yang memiliki nama yang sama dengan sumbernya, atau mempromosikan rekam jepret melalui blob dasarnya.

Jika klien menentukan ID sewa pada blob yang belum ada, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal) untuk permintaan yang dibuat terhadap versi 2013-08-15 dan yang lebih baru. Untuk versi sebelumnya, Blob Storage mengembalikan kode status 201 (Dibuat).

Menyalin rekam jepret blob

Saat blob sumber disalin, rekam jepret atau versi blob sumber apa pun tidak disalin ke tujuan. Saat blob tujuan ditimpa dengan salinan, rekam jepret atau versi apa pun yang terkait dengan blob tujuan tetap utuh dengan namanya.

Anda dapat melakukan operasi salin untuk mempromosikan rekam jepret melalui blob dasarnya, selama berada di tingkat online (panas atau dingin). Dengan cara ini, Anda dapat memulihkan versi blob yang lebih lama. Rekam jepret tetap ada, tetapi tujuannya ditimpa dengan salinan yang dapat dibaca dan ditulis.

Menyalin versi blob

Anda dapat melakukan operasi salin untuk mempromosikan versi melalui blob dasarnya, selama berada di tingkat online (panas atau dingin). Dengan cara ini, Anda dapat memulihkan versi blob yang lebih lama. Versi tetap ada, tetapi tujuannya ditimpa dengan salinan yang dapat dibaca dan ditulis.

Menyalin blob yang diarsipkan

Dimulai dengan versi 2018-11-09, Anda dapat menyalin blob yang diarsipkan ke blob baru dalam akun penyimpanan yang sama. Blob sumber tetap berada di tingkat arsip. Ketika blob sumber adalah blob yang diarsipkan, permintaan harus berisi x-ms-access-tier header , yang menunjukkan tingkat blob tujuan. Blob tujuan harus berada di tingkat online. Anda tidak dapat menyalin ke blob di tingkat arsip.

Dimulai dengan versi 2021-02-12, Anda dapat menyalin blob yang diarsipkan ke tingkat online di akun penyimpanan yang berbeda, selama akun tujuan berada di wilayah yang sama dengan akun sumber.

Permintaan mungkin gagal jika blob sumber sedang direhidrasi.

Untuk informasi terperinci tentang tingkatan di tingkat blob blok, lihat Tingkat penyimpanan panas, dingin, dan arsip.

Bekerja dengan operasi salinan yang tertunda (versi 2012-02-12 dan yang lebih baru)

Copy Blob Jika operasi selesai secara asinkron, gunakan tabel berikut untuk menentukan langkah berikutnya berdasarkan kode status yang dikembalikan:

Kode status Makna
202 (Diterima), x-ms-copy-status: berhasil Operasi salin berhasil diselesaikan.
202 (Diterima), x-ms-copy-status: tertunda Operasi salin belum selesai. Polling blob tujuan dengan menggunakan Get Blob Properties untuk memeriksa x-ms-copy-status header hingga operasi selesai atau gagal.
4xx, 500, atau 503 Operasi salin gagal.

Selama dan setelah Copy Blob operasi, properti blob tujuan berisi ID Copy Blob salinan operasi dan URL blob sumber. Ketika operasi selesai, Blob Storage menulis nilai waktu dan hasil (success, failed, atau aborted) ke properti blob tujuan. Jika operasi memiliki failed hasil, x-ms-copy-status-description header berisi string detail kesalahan.

Operasi yang tertunda Copy Blob memiliki batas waktu dua minggu. Upaya salin yang belum selesai setelah dua minggu kehabisan waktu dan meninggalkan blob kosong dengan x-ms-copy-status bidang diatur ke failed dan x-ms-copy-status-description diatur ke 500 (OperationCancelled). Kesalahan terputus-terputus dan tidak fatal yang dapat terjadi selama operasi penyalinan mungkin menghambat kemajuan operasi tetapi tidak menyebabkannya gagal. Dalam kasus ini, x-ms-copy-status-description menjelaskan kesalahan terputus-terputus.

Setiap upaya untuk memodifikasi atau snapshot blob tujuan selama operasi salin akan gagal dengan kode status 409 (Konflik), "Salin Blob sedang Berlangsung."

Jika Anda memanggil Abort Copy Blob operasi, Anda akan melihat x-ms-copy-status:aborted header. Blob tujuan akan memiliki metadata utuh dan panjang blob 0 byte. Anda dapat mengulangi panggilan asli untuk Copy Blob mencoba operasi salin lagi.

Copy Blob Jika operasi selesai secara sinkron, gunakan tabel berikut untuk menentukan status operasi salin:

Kode status Makna
202 (Diterima), x-ms-copy-status: berhasil Operasi salin berhasil diselesaikan.
4xx, 500, atau 503 Operasi salin gagal.

Tingkat diwariskan untuk tingkat penyimpanan premium. Untuk blob blok, menimpa blob tujuan akan mewarisi tingkat panas atau dingin dari tujuan jika x-ms-access-tier tidak disediakan. Menimpa blob yang diarsipkan akan gagal. Untuk informasi terperinci tentang tingkatan di tingkat blob blok, lihat Tingkat penyimpanan panas, dingin, dan arsip.

Billing

Permintaan harga dapat berasal dari klien yang menggunakan API Blob Storage, baik langsung melalui Blob Storage REST API, atau dari pustaka klien Azure Storage. Permintaan ini mengumpulkan biaya per transaksi. Jenis transaksi memengaruhi cara akun ditagih. Misalnya, transaksi baca bertambah ke kategori penagihan yang berbeda dari transaksi tulis. Tabel berikut ini memperlihatkan kategori penagihan untuk Copy Blob permintaan berdasarkan jenis akun penyimpanan:

Operasi Jenis akun penyimpanan Kategori penagihan
Salin Blob (akun tujuan1) Objek besar biner blok premium
Tujuan umum standar v2
Tujuan umum standar v1
Operasi tulis
Salin Blob (akun sumber2) Objek besar biner blok premium
Tujuan umum standar v2
Tujuan umum standar v1
Membacakan operasi

1Akun tujuan dibebankan untuk satu transaksi untuk memulai penulisan.
2Ketika objek sumber berada di akun yang berbeda, akun sumber menimbulkan satu transaksi untuk setiap permintaan baca ke objek sumber.

Untuk mempelajari tentang harga untuk kategori penagihan yang ditentukan, lihat harga Azure Blob Storage.

Akun tujuan juga dikenakan biaya transaksi untuk setiap permintaan untuk membatalkan operasi penyalinan (lihat Batalkan Salin Blob) atau untuk memeriksa status operasi salin (lihat Dapatkan Properti Blob atau Dapatkan Blob).

Selain itu, jika akun sumber dan tujuan berada di wilayah yang berbeda (misalnya, AS Utara dan AS Selatan), bandwidth yang Anda gunakan untuk mentransfer permintaan dibebankan ke akun penyimpanan sumber sebagai keluar. Keluar antar akun dalam wilayah yang sama gratis.

Saat Anda menyalin blob sumber ke blob tujuan yang memiliki nama berbeda dalam akun yang sama, Anda menggunakan sumber daya penyimpanan tambahan untuk blob baru. Operasi salin kemudian menghasilkan biaya terhadap penggunaan kapasitas akun penyimpanan untuk sumber daya tambahan tersebut. Namun, jika nama blob sumber dan tujuan sama dalam akun yang sama (misalnya, ketika Anda mempromosikan rekam jepret ke blob dasarnya), tidak ada biaya tambahan yang dikeluarkan, selain metadata salinan tambahan yang disimpan dalam versi 2012-02-12 dan yang lebih baru.

Saat Anda mempromosikan rekam jepret untuk menggantikan blob dasarnya, rekam jepret dan blob dasar menjadi identik. Mereka berbagi blok atau halaman, sehingga operasi salin tidak menghasilkan biaya tambahan terhadap penggunaan kapasitas akun penyimpanan. Namun, jika Anda menyalin rekam jepret ke blob tujuan yang memiliki nama berbeda, operasi tersebut dikenakan biaya tambahan untuk sumber daya penyimpanan yang digunakan blob baru yang dihasilkan. Dua blob yang memiliki nama berbeda tidak dapat berbagi blok atau halaman, meskipun identik. Untuk informasi selengkapnya tentang skenario biaya rekam jepret, lihat Memahami bagaimana rekam jepret mengumpulkan biaya.

Lihat juga

Mengotorisasi permintaan ke Azure Storage
Status dan kode galat
Kode kesalahan Blob Storage
Memahami bagaimana rekam jepret mengumpulkan biaya
Batalkan Menyalin Blob