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 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 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 Pilihan. Menunjukkan cakupan enkripsi untuk mengenkripsi konten permintaan. Header ini didukung dalam versi 2020-12-06 dan yang lebih baru.
x-ms-tags Pilihan. 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 Pilihan. 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 Pilihan. 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. Jika nilai tidak cocok, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal).
If-None-Match Pilihan. 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> Pilihan. 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 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 terperinci tentang tingkatan blob blok, lihat Tingkat penyimpanan panas, dingin, dan arsip.

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

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

Tipe objek otorisasi Microsoft Entra ID Otorisasi Tanda Tangan Akses Bersama (SAS) Otorisasi Kunci Bersama (atau Shared Key Lite)
Blob blok tujuan Ya Ya Ya
Blob blok sumber di akun penyimpanan yang sama Ya Ya Ya
Blob blok 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 From URL 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 From URL 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

Blob sumber dan tujuan untuk Copy Blob From URL operasi harus berupa blob blok.

Dalam versi 2020-10-02 dan yang lebih baru, otorisasi Azure Active Directory 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-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

Daftar blok yang diterapkan blob sumber juga disalin ke blob tujuan. 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, header tersebut 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

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 bagaimana akun ditagih. Misalnya, membaca transaksi bertambah ke kategori penagihan yang berbeda dari transaksi tulis. Tabel berikut ini memperlihatkan kategori penagihan untuk Copy Blob From URL permintaan berdasarkan jenis akun penyimpanan:

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

1Akun tujuan dikenakan biaya untuk satu transaksi untuk memulai penulisan.
2Akun 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.

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.

Lihat juga

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