Copy Blob Bertahap
Operasi menyalin Incremental Copy Blob
rekam jepret blob halaman sumber ke blob halaman tujuan. Hanya perbedaan dari rekam jepret yang disalin sebelumnya yang ditransfer ke tujuan. Salinan bayangan yang disalin adalah salinan lengkap dari rekam jepret asli, dan Anda dapat membaca atau menyalinnya seperti biasa. API ini didukung sejak REST versi 2016-05-31.
Minta
Anda dapat membuat Incremental Copy Blob
permintaan sebagai berikut. HTTPS disarankan. Ganti myaccount dengan nama akun penyimpanan Anda, mycontainer dengan nama kontainer Anda, dan myblob dengan nama blob tujuan Anda. Parameter comp
kueri, dengan nilai incrementalcopy
, menunjukkan bahwa permintaan ini adalah membuat rekam jepret inkremental.
URI permintaan metode PUT | Versi HTTP |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy |
HTTP/1.1 |
URI layanan penyimpanan yang ditimulasi
Saat Anda membuat permintaan terhadap layanan penyimpanan yang ditimulasi, tentukan nama host emulator dan port layanan Azure Blob Storage sebagai 127.0.0.1:10000, diikuti dengan nama akun penyimpanan yang ditimulasi. Juga menunjukkan bahwa permintaan ini untuk salinan bertambah bertahap, dengan mengatur comp
parameter kueri ke incrementalcopy
.
URI permintaan metode PUT | Versi HTTP |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy |
HTTP/1.1 |
Untuk informasi selengkapnya, lihat Menggunakan emulator Azurite untuk pengembangan 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 resmi, dan opsional untuk permintaan anonim. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage. |
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 |
Pilihan. 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 |
Pilihan. 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.
ETag Jika untuk blob tujuan tidak cocok dengan ETag yang ditentukan untuk If-Match , 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 rekam jepret blob halaman sumber. Nilai ini adalah URL dengan panjang hingga 2 kibibyte (KiB) yang menentukan rekam jepret blob halaman. Nilai harus dikodekan URL seperti yang akan muncul dalam URI permintaan. URI blob sumber dapat diotorisasi dengan salah satu dari dua cara: URI blob sumber dapat mereferensikan rekam jepret blob halaman, tetapi harus menyertakan token tanda tangan akses bersama (SAS) yang dibuat pada blob dasar rekam jepret. Bidang sumber daya yang ditandatangani ( sr ) dari SAS harus diatur ke b . Misalnya: https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature> .URI blob sumber dapat mereferensikan rekam jepret blob halaman publik; misalnya, https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime> . |
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. Untuk informasi selengkapnya, lihat Memantau Azure Blob Storage. |
Isi permintaan
Tidak ada.
Respons
Respons mencakup kode status HTTP, dan sekumpulan header respons.
Kode status
Operasi yang berhasil mengembalikan kode status 202 (Diterima). Untuk informasi tentang kode status, lihat Status dan kode 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.
Sintaks | Deskripsi |
---|---|
ETag |
Berisi nilai yang dapat Anda gunakan untuk melakukan operasi secara kondisional. Nilainya dalam tanda kutip. |
Last-Modified |
Tanggal dan waktu blob terakhir diubah. Untuk informasi selengkapnya, lihat Representasi nilai tanggal/waktu di header. Setiap operasi tulis pada blob (termasuk pembaruan pada metadata atau properti blob) mengubah waktu blob yang terakhir dimodifikasi. |
x-ms-request-id |
Secara unik mengidentifikasi permintaan yang dibuat dan dapat digunakan untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Pemecahan masalah operasi API. |
x-ms-version |
Menunjukkan versi Blob Storage yang digunakan untuk menjalankan permintaan. |
Date |
Nilai tanggal/waktu UTC yang menunjukkan waktu di mana respons dimulai. Layanan menghasilkan nilai ini. |
x-ms-copy-id: <id> |
Pengidentifikasi string untuk operasi salin ini. Gunakan dengan Get Blob Properties untuk memeriksa status operasi salin ini, atau teruskan ke Abort Copy Blob untuk menghentikan salinan yang tertunda. |
x-ms-copy-status: pending |
Status operasi salin. Ini selalu tertunda, untuk menunjukkan bahwa salinan telah dimulai dan sedang berlangsung. |
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. Nilainya paling banyak 1.024 karakter ASCII yang terlihat.
x-ms-client-request-id Jika header tidak ada dalam permintaan, header tidak akan ada dalam respons. |
Isi Respons
Tidak ada.
Respons sampel
Berikut ini adalah respons sampel untuk permintaan untuk melakukan salinan bertahap:
Response Status:
HTTP/1.1 202 Accepted
Response Headers:
Last-Modified: <date>
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date>
Authorization
Otorisasi diperlukan saat memanggil operasi akses data apa pun di Azure Storage. Bagian berikut menjelaskan bagaimana objek tujuan untuk Incremental Copy Blob
operasi dapat diotorisasi. Akses ke blob sumber atau file diotorisasi secara terpisah, seperti yang dijelaskan dalam detail untuk x-ms-copy-source
header permintaan.
Penting
Microsoft merekomendasikan penggunaan Microsoft Entra ID dengan identitas terkelola untuk mengotorisasi permintaan ke Azure Storage. Microsoft Entra ID memberikan keamanan yang unggul dan kemudahan penggunaan dibandingkan dengan otorisasi Kunci Bersama.
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. Perwakilan keamanan mungkin pengguna, grup, perwakilan layanan aplikasi, atau identitas terkelola Azure. Perwakilan 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 untuk pengguna, grup, identitas terkelola, atau perwakilan layanan Microsoft Entra untuk memanggil Incremental Copy Blob
operasi, dan peran Azure RBAC bawaan yang paling tidak istimewa yang mencakup tindakan ini:
- Tindakan Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (untuk menulis ke blob yang ada) atau Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (untuk menulis blob baru ke tujuan)
- Peran bawaan dengan hak istimewa paling sedikit:Kontributor Data Blob Penyimpanan
Untuk mempelajari selengkapnya tentang menetapkan peran menggunakan Azure RBAC, lihat Menetapkan peran Azure untuk akses ke data blob.
Keterangan
Tujuan salinan inkremental tidak boleh ada, atau harus dibuat dengan salinan bertahap sebelumnya dari blob sumber yang sama. Setelah Anda membuatnya, blob tujuan secara permanen dikaitkan dengan sumbernya, dan hanya dapat digunakan untuk salinan inkremental.
Get Blob Properties
API dan List Blobs
menunjukkan apakah blob adalah blob salinan bertahap yang dibuat dengan cara ini.
Anda tidak dapat langsung mengunduh blob salinan inkremental. Satu-satunya operasi yang didukung adalah Get Blob Properties
, , Incremental Copy Blob
dan Delete Blob
. Anda dapat membaca dan menghapus salinan bayangan yang disalin seperti biasa.
Anda melakukan salinan inkremental secara asinkron pada layanan, dan Anda harus melakukan polling untuk penyelesaian.
Copy Blob
Lihat API untuk detail tentang cara melakukan polling salinan yang tertunda. Ketika salinan selesai, blob tujuan akan berisi rekam jepret baru.
Get Blob Properties
API mengembalikan waktu rekam jepret dari rekam jepret yang baru dibuat.
Pertama kali Anda melakukan salinan inkremental pada blob tujuan, blob baru dibuat, dengan rekam jepret yang sepenuhnya disalin dari sumbernya. Setiap panggilan berikutnya untuk Incremental Copy Blob
membuat rekam jepret baru, dengan hanya menyalin perubahan diferensial dari rekam jepret yang disalin sebelumnya.
Perubahan diferensial dihitung di server dengan mengeluarkan Get Page Ranges
panggilan pada rekam jepret blob sumber. Atur prevsnapshot
ke rekam jepret yang terakhir disalin. Oleh karena itu, pembatasan yang sama berlaku Get Page Ranges
untuk Incremental Copy Blob
. Secara khusus, Anda harus menyalin rekam jepret dalam urutan naik, dan jika blob sumber dibuat ulang dengan menggunakan Put Blob
atau Copy Blob
, maka Incremental Copy Blob
pada rekam jepret baru akan gagal.
Ruang penyimpanan tambahan yang digunakan oleh salinan bayangan yang disalin adalah ukuran data diferensial yang ditransfer selama salinan. Anda dapat menentukan ukuran ini dengan melakukan panggilan API diferensial Get Page Ranges
pada rekam jepret, untuk membandingkannya dengan rekam jepret sebelumnya.
Lihat juga
Mengotorisasi permintaan ke Azure Storage
Status dan kode galat
Mengatur batas waktu untuk operasi Blob Storage