Copy Blob Dari URL
Operasi menyalin Copy Blob From URL blob ke tujuan dalam akun penyimpanan secara sinkron untuk ukuran blob sumber hingga 256 mebibyte (MiB). API ini tersedia mulai versi 2018-03-28.
Sumber untuk operasi dapat berupa blob blok yang Copy Blob From URL diterapkan di akun penyimpanan Azure apa pun yang berwenang atau publik dengan tanda tangan akses bersama.
Minta
Anda dapat membuat Copy Blob From URL 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.
| 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 akan 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-encryption-scope |
Opsional. Menunjukkan cakupan enkripsi untuk mengenkripsi konten permintaan. Header ini didukung dalam versi 2020-12-06 dan yang lebih baru. |
x-ms-tags |
Opsional. Mengatur tag yang dikodekan string kueri 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-copy-source-tag-option |
Opsional. Nilai yang mungkin adalah REPLACE dan COPY (peka huruf besar/kecil). Nilai defaultnya adalah REPLACE.Jika COPY ditentukan, tag dari blob sumber akan disalin ke blob tujuan. Blob sumber harus bersifat privat, dan permintaan harus memiliki izin ke operasi Dapatkan Tag Blob pada blob sumber dan operasi Atur Tag Blob pada blob tujuan. Ini menimbulkan panggilan tambahan ke Get Blob Tags operasi pada akun sumber.REPLACE akan mengatur tag yang x-ms-tags ditentukan header pada blob tujuan. Jika x-ms-tags menentukan REPLACE dan tidak ada tag, maka tidak ada tag yang akan diatur pada blob tujuan. Menentukan COPY dan x-ms-tags akan mengakibatkan kesalahan 409 (Konflik).Didukung dalam versi 2021-04-10 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 URL blob sumber. Nilainya dapat berupa URL dengan panjang hingga 2 kibibyte (KiB) yang menentukan blob. Nilai harus dikodekan URL seperti yang akan muncul dalam URI permintaan. Blob sumber harus publik atau diotorisasi melalui tanda tangan akses bersama. Jika blob sumber bersifat publik, tidak ada otorisasi yang diperlukan untuk melakukan operasi. Jika ukuran blob sumber lebih besar dari 256 MiB, permintaan gagal dengan kesalahan 409 (Konflik). Jenis blob dari blob sumber harus blob blok. 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> |
x-ms-copy-source-authorization: <scheme> <signature> |
Opsional. Menentukan skema otorisasi dan tanda tangan untuk sumber salinan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. Hanya pembawa skema yang didukung untuk Azure Active Directory. Header ini didukung dalam versi 2020-10-02 dan yang lebih baru. |
x-ms-requires-sync:true |
Wajib diisi. Menunjukkan bahwa ini adalah operasi sinkron Copy Blob From URL alih-alih operasi asinkron Copy Blob . |
x-ms-source-content-md5 |
Opsional. Menentukan hash MD5 dari konten blob dari URI. Hash ini digunakan untuk memverifikasi integritas blob selama pengangkutan data dari URI. Ketika header ini ditentukan, layanan penyimpanan membandingkan hash konten yang telah tiba dari sumber salin dengan nilai header ini. Hash MD5 tidak disimpan dengan blob. Jika dua hash tidak cocok, operasi gagal dengan kode kesalahan 400 (Permintaan Buruk). |
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 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 aktif dan tak terbatas untuk blob sewaan. ID sewa berdurasi terbatas 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. |
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 mungkin juga menyertakan header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1.
| Header respons | Deskripsi |
|---|---|
ETag |
Jika salinan selesai, berisi ETag nilai blob tujuan. Jika salinan tidak lengkap, berisi ETag nilai blob kosong yang dibuat di awal salinan.Nilai ETag dalam tanda kutip. |
Last-Modified |
Mengembalikan tanggal/waktu operasi salin ke blob tujuan selesai. |
x-ms-request-id |
Secara unik mengidentifikasi permintaan yang dibuat. Anda dapat menggunakannya untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Memecahkan masalah operasi API. |
x-ms-version |
Menunjukkan versi Storage Blob yang digunakan untuk menjalankan permintaan. |
Date |
Nilai tanggal/waktu UTC yang menunjukkan waktu di mana layanan mengirim respons. |
x-ms-copy-id: <id> |
Pengidentifikasi string untuk operasi salin ini. |
x-ms-copy-status: <success> |
Menunjukkan status operasi salin. Nilai success berarti bahwa operasi berhasil diselesaikan. |
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. |
x-ms-request-server-encrypted: true/false |
Atur ke true jika konten permintaan berhasil dienkripsi melalui algoritma yang ditentukan. Jika tidak, nilainya adalah false. |
x-ms-encryption-scope |
Dikembalikan jika permintaan menggunakan cakupan enkripsi, sehingga klien dapat memastikan bahwa konten permintaan berhasil dienkripsi melalui cakupan enkripsi. |
Isi Respons
Tidak ada.
Respons sampel
Berikut ini 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: 2018-03-28
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: success
Date: <date>
Authorization
Operasi ini dapat dipanggil oleh pemilik akun dan oleh siapa pun dengan tanda tangan akses bersama yang memiliki izin untuk menulis ke blob ini atau kontainernya.
Akses ke blob sumber atau file diotorisasi secara terpisah, seperti yang dijelaskan dalam detail untuk header x-ms-copy-sourcepermintaan .
Jika permintaan menentukan tag dengan x-ms-tags header permintaan, pemanggil harus memenuhi persyaratan otorisasi operasi Atur Tag Blob .
Keterangan
Blob sumber dan tujuan untuk Copy Blob From URL operasi harus berupa blob blok.
Dalam versi 2020-10-02 dan yang lebih baru, Azure Active Directory otorisasi didukung untuk sumber operasi salin.
Operasi Copy Blob From URL selalu menyalin seluruh blob sumber. Menyalin rentang byte atau sekumpulan blok tidak didukung.
Anda dapat menyalin blob sumber ke blob tujuan yang memiliki nama berbeda. Blob tujuan dapat menjadi blob blok yang ada, atau dapat menjadi blob baru yang dibuat operasi salin.
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 akan memiliki jumlah blok yang diterapkan yang sama dengan sumbernya.
Nilai ETag untuk blob blok berubah ketika Copy Blob From URL operasi dimulai dan ketika operasi selesai.
Menyalin properti blob dan metadata
Ketika blob blok disalin, properti sistem berikut disalin ke blob tujuan dengan nilai yang sama:
Content-TypeContent-EncodingContent-LanguageContent-LengthCache-ControlContent-MD5Content-Disposition
Daftar blok yang diterapkan blob sumber juga disalin ke blob tujuan. Setiap blok yang tidak dikomit tidak disalin.
Blob tujuan selalu berukuran sama dengan blob sumber, sehingga nilai Content-Length header untuk blob tujuan cocok dengan nilai header tersebut untuk blob sumber.
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 yang ditentukan dalam operasi 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 From URL hanya membaca dari blob sumber, sehingga status sewa blob sumber tidak masalah.
Billing
Akun Copy Blob From URL tujuan operasi dikenakan biaya untuk satu transaksi untuk memulai operasi. Akun tujuan juga menimbulkan satu transaksi untuk setiap permintaan ke sumber operasi salin.
Akun sumber juga 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.
Lihat juga
Mengotorisasi permintaan ke Azure Storage
Status dan kode galat
Kode kesalahan Storage blob
Memahami bagaimana rekam jepret mengumpulkan biaya