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 permintaan URI:
| Parameter | Deskripsi |
|---|---|
timeout |
Opsional. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur batas waktu untuk operasi Storage Blob. |
Header permintaan
Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional:
| Header permintaan | 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 Menamai dan mereferensikan 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 |
Opsional. 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 bisa 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 Azure Active Directory (Azure AD) 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 salin. 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?sastokenDalam 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 |
Opsional. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 KiB yang dicatat dalam log Azure Monitor saat pengelogan dikonfigurasi. Kami sangat menyarankan Anda menggunakan header ini untuk menghubungkan aktivitas sisi klien dengan permintaan yang diterima server. Untuk informasi selengkapnya, lihat Pengelogan Azure: Menggunakan log untuk melacak permintaan penyimpanan. |
x-ms-access-tier |
Opsional. 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, dan Archive. Untuk informasi mendetail tentang tingkatan blob blok, lihat Tingkat penyimpanan panas, dingin, dan arsip. |
x-ms-rehydrate-priority |
Opsional. 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 Storage Blob 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
Pemilik akun dapat memanggil operasi ini. Untuk permintaan yang dibuat terhadap versi 2013-08-15 dan yang lebih baru, tanda tangan akses bersama yang memiliki izin untuk menulis ke blob tujuan atau kontainernya didukung untuk operasi salin dalam akun yang sama. Perhatikan bahwa tanda tangan akses bersama yang ditentukan pada permintaan hanya berlaku untuk blob tujuan.
Akses ke blob sumber atau file diotorisasi secara terpisah, seperti yang dijelaskan dalam detail untuk header x-ms-copy-sourcepermintaan .
Tabel berikut ini menjelaskan bagaimana tujuan dan objek sumber untuk Copy Blob operasi dapat diotorisasi:
| Blob | Otorisasi dengan Kunci Bersama atau Kunci Bersama Lite | Otorisasi dengan tanda tangan akses bersama | Objek publik tidak memerlukan otorisasi |
|---|---|---|---|
| Blob tujuan | Ya | Ya | Tidak |
| Blob sumber dalam akun yang sama | Ya | Ya | Ya |
| Blob sumber di akun lain | Tidak | Ya | Ya |
| File sumber di akun yang sama atau akun lain | Tidak | Ya | Tidak berlaku |
Jika permintaan menentukan tag di x-ms-tags header permintaan, pemanggil harus memenuhi persyaratan otorisasi operasi Atur Tag Blob .
Keterangan
Dalam versi 2012-02-12 dan yang Copy Blob lebih baru, operasi dapat selesai secara asinkron. Operasi ini mengembalikan ID salinan yang dapat Anda gunakan untuk memeriksa atau membatalkan operasi salin. Blob Storage menyalin blob berdasarkan upaya terbaik.
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 penyalinan sedang berlangsung.
Dalam versi 2015-02-21 dan yang lebih baru, sumber untuk operasi salin juga dapat menjadi file dalam Azure Files. Jika sumbernya adalah file, tujuannya harus berupa blob blok.
Beberapa operasi yang 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 penyalinan 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.
Operasi Copy Blob dapat mengambil salah satu formulir berikut:
Anda dapat menyalin blob sumber ke blob tujuan yang memiliki nama berbeda. Blob tujuan dapat menjadi blob yang ada dengan 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 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 yang berkomitmen sama dengan sumbernya.
Saat Anda menyalin dari blob penambahan, semua blok yang diterapkan akan disalin. Di akhir operasi salin, blob tujuan memiliki jumlah blok yang berkomitmen sama dengan sumbernya.
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 penyalinan 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 lengkap selesai.
Menyalin properti blob, tag, dan metadata
Ketika blob disalin, properti sistem berikut disalin ke blob tujuan yang memiliki nilai yang sama:
Content-TypeContent-EncodingContent-LanguageContent-LengthCache-ControlContent-MD5Content-Dispositionx-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. Setiap 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, mereka 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 salin selesai, operasi gagal. Anda dapat mencegah perubahan pada blob sumber dengan menyewanya 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
Akun Copy Blob tujuan operasi dikenakan biaya untuk satu transaksi untuk memulai salinan. Akun tujuan juga menimbulkan satu transaksi untuk setiap permintaan untuk membatalkan atau meminta status operasi penyalinan.
Ketika blob sumber berada di akun lain, akun sumber dikenakan biaya transaksi. 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. Egress 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 Storage blob
Memahami bagaimana rekam jepret mengumpulkan biaya
Batalkan Menyalin Blob