Masukkan Blok Dari URL

Operasi Put Block From URL membuat blok baru yang akan diterapkan sebagai bagian dari blob tempat konten dibaca dari URL. API ini tersedia pada versi 2018-03-28.

Minta

Anda dapat membuat Put Block From URL permintaan sebagai berikut. Kami menyarankan agar Anda menggunakan HTTPS. Ganti myaccount dengan nama akun penyimpanan Anda:

URI permintaan metode PUT Versi HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Permintaan layanan penyimpanan yang ditimulasikan

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

URI permintaan metode PUT Versi HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

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

Parameter URI

Parameter Deskripsi
blockid Wajib diisi. Nilai string Base64 yang valid yang mengidentifikasi blok. Sebelum pengodean, string harus berukuran kurang dari atau sama dengan 64 byte.

Untuk blob tertentu, panjang nilai yang ditentukan untuk blockid parameter harus berukuran sama untuk setiap blok.

Catatan: String Base64 harus dikodekan DENGAN URL.
timeout Pilihan. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur waktu habis untuk operasi Blob service.

Header permintaan

Header permintaan yang diperlukan dan opsional dijelaskan dalam tabel berikut:

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. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage. Untuk Put Block From URL, versinya harus 2018-03-28 atau yang lebih baru.
Content-Length Wajib diisi. Menentukan jumlah byte yang dikirimkan dalam isi permintaan. Nilai header ini harus diatur ke 0. Ketika panjangnya bukan 0, operasi gagal dengan kode status 400 (Permintaan Buruk).
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, karena 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. 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 skema pembawa yang didukung untuk Azure Active Directory.
Header ini didukung dalam versi 2020-10-02 dan yang lebih baru.
x-ms-source-range Pilihan. Hanya mengunggah byte blob di URL sumber dalam rentang yang ditentukan. Jika header ini tidak ditentukan, seluruh konten blob sumber diunggah sebagai satu blok. Untuk informasi selengkapnya, lihat Menentukan header rentang untuk operasi Blob service.
x-ms-source-content-md5 Pilihan. Hash MD5 dari konten blok dari URI. Hash ini digunakan untuk memverifikasi integritas blok selama pengangkutan data dari URI. Ketika header ini ditentukan, layanan penyimpanan membandingkan hash konten yang telah tiba dari sumber salin dengan nilai header ini.

Catatan: Hash MD5 ini tidak disimpan dengan blob.

Jika dua hash tidak cocok, operasi gagal dengan kode kesalahan 400 (Permintaan Buruk).
x-ms-source-content-crc64 Pilihan. Hash CRC64 dari konten blok dari URI. Hash ini digunakan untuk memverifikasi integritas blok selama pengangkutan data dari URI. Ketika header ini ditentukan, layanan penyimpanan membandingkan hash konten yang telah tiba dari sumber salin dengan nilai header ini.

Catatan: Hash CRC64 ini tidak disimpan dengan blob.

Jika dua hash tidak cocok, operasi gagal dengan kode kesalahan 400 (Permintaan Buruk).

Jika header x-ms-source-content-md5 dan x-ms-source-content-crc64 ada, permintaan gagal dengan 400 (Permintaan Buruk).

Header ini didukung dalam versi 2019-02-02 dan yang lebih baru.
x-ms-encryption-scope Pilihan. Menunjukkan cakupan enkripsi yang akan digunakan untuk mengenkripsi konten sumber. Header ini didukung dalam versi 2019-02-02 dan yang lebih baru.
x-ms-lease-id:<ID> Diperlukan jika blob memiliki sewa aktif. Untuk melakukan operasi ini pada blob dengan sewa aktif, tentukan ID sewa yang valid untuk header ini.
x-ms-client-request-id Pilihan. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 kibibyte (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.

Header permintaan (kunci enkripsi yang disediakan pelanggan)

Pada versi 2019-02-02, header berikut dapat ditentukan pada permintaan untuk mengenkripsi blob dengan kunci yang disediakan pelanggan. Enkripsi dengan kunci yang disediakan pelanggan (dan set header yang sesuai) bersifat opsional.

Meminta kop Deskripsi
x-ms-encryption-key Wajib diisi. Kunci enkripsi AES-256 yang dikodekan Base64.
x-ms-encryption-key-sha256 Wajib diisi. Hash SHA256 yang dikodekan Base64 dari kunci enkripsi.
x-ms-encryption-algorithm: AES256 Wajib diisi. Menentukan algoritma yang akan digunakan untuk enkripsi. Nilai header ini harus AES256.

Isi permintaan

Tidak ada.

Contoh permintaan

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1  
  
Request Headers:  
x-ms-version: 2018-03-28  
x-ms-date: Sat, 31 Mar 2018 14:37:35 GMT    
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-499

Respons

Respons mencakup kode status HTTP dan sekumpulan header respons.

Kode status

Operasi yang berhasil mengembalikan kode status 201 (Dibuat).

Untuk informasi selengkapnya 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
Content-MD5 Dikembalikan sehingga klien dapat memeriksa integritas konten pesan. Nilai header ini dihitung oleh Blob Storage. Ini tidak selalu sama dengan nilai yang ditentukan dalam header permintaan. Untuk versi 2019-02-02 dan yang lebih baru, header ini dikembalikan hanya ketika permintaan memiliki header ini.
x-ms-content-crc64 Untuk versi 2019-02-02 dan yang lebih baru. Dikembalikan sehingga klien dapat memeriksa integritas konten pesan. Nilai header ini dihitung oleh Blob Storage. Ini tidak selalu sama dengan nilai yang ditentukan dalam header permintaan.

Dikembalikan saat x-ms-source-content-md5 header tidak ada dalam permintaan.
x-ms-request-id Secara unik mengidentifikasi permintaan yang dibuat, dan Anda dapat menggunakannya untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Memecahkan masalah operasi API.
x-ms-version Versi Blob Storage yang digunakan untuk menjalankan permintaan.
Date Nilai tanggal/waktu UTC yang dihasilkan oleh layanan, yang menunjukkan waktu saat respons dimulai.
x-ms-request-server-encrypted: true/false Versi 2015-12-11 dan yang lebih baru. Nilai header ini diatur ke true jika konten blok berhasil dienkripsi menggunakan algoritma yang ditentukan. Jika tidak, nilai diatur ke false.
x-ms-encryption-key-sha256 Versi 2019-02-02 dan yang lebih baru. Dikembalikan jika permintaan menggunakan kunci yang disediakan pelanggan untuk enkripsi, sehingga klien dapat memastikan bahwa konten permintaan berhasil dienkripsi dengan menggunakan kunci yang disediakan.
x-ms-encryption-scope Versi 2019-02-02 dan yang lebih baru. Dikembalikan jika permintaan menggunakan cakupan enkripsi, sehingga klien dapat memastikan bahwa konten permintaan berhasil dienkripsi dengan menggunakan cakupan enkripsi.
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 berisi tidak lebih dari 1.024 karakter ASCII yang terlihat. x-ms-client-request-id Jika header tidak ada dalam permintaan, header tidak akan ada dalam respons.

Respons sampel

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sat, 31 Mar 2018 23:47:09 GMT  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Authorization

Otorisasi diperlukan saat memanggil operasi akses data apa pun di Azure Storage. Anda dapat mengotorisasi operasi seperti yang Put Block From URL dijelaskan di bawah ini.

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, atau perwakilan layanan yang Microsoft Entra untuk memanggil Put Block From URL operasi, dan peran Azure RBAC bawaan yang paling tidak istimewa yang mencakup tindakan ini:

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

Keterangan

Put Block From URL mengunggah blok untuk penyertaan di masa mendatang dalam blob blok. Blob blok dapat mencakup maksimum 50.000 blok. Setiap blok bisa menjadi ukuran yang berbeda. Ukuran maksimum untuk blok yang diunggah dengan Put Block From URL adalah 100 mebibyte (MiB). Untuk mengunggah blok yang lebih besar (hingga 4.000 MiB), lihat Put Block.

Dalam versi 2020-10-02 dan yang lebih baru, otorisasi Azure Active Directory didukung untuk sumber operasi salin.

Blob dapat memiliki maksimum 100.000 blok yang tidak dikomit kapan saja. Jika maksimum ini terlampaui, layanan mengembalikan kode status 409 (RequestEntityTooLargeBlockCountExceedsLimit).

Tabel berikut menjelaskan ukuran blok dan blob maksimum yang diizinkan, berdasarkan versi layanan:

Versi layanan. Ukuran blok maksimum (melalui Put Block From URL) Ukuran blob maksimum (melalui Put Block List) Ukuran blob maksimum melalui operasi tulis tunggal (melalui Put Blob From URL)
Versi 2020-04-08 dan yang lebih baru 4.000 MiB Sekitar 190,7 tebibyte (TiB) (4.000 MiB × 50.000 blok) 5.000 MiB
Versi yang lebih lama dari 2020-04-08 100 MiB Sekitar 4,75 TiB (100 MiB × 50.000 blok) 256 MiB

Setelah mengunggah sekumpulan blok, Anda dapat membuat atau memperbarui blob di server dari set ini dengan memanggil operasi Put Block List . Setiap blok dalam set diidentifikasi oleh ID blok yang unik dalam blob tersebut. ID blok dilingkup ke blob tertentu, sehingga blob yang berbeda dapat memiliki blok dengan ID yang sama.

Jika Anda memanggil Put Block From URL pada blob yang belum ada, blob blok baru dibuat dengan panjang konten 0. Blob ini dijumlahkan oleh List Blobs operasi jika include=uncommittedblobs opsi ditentukan. Blokir atau blok yang Anda unggah tidak dilakukan hingga Anda memanggil Put Block List blob baru. Blob yang dibuat dengan cara ini dipertahankan di server selama seminggu. Jika Anda belum menambahkan lebih banyak blok atau blok yang diterapkan ke blob dalam periode waktu tersebut, blob adalah sampah yang dikumpulkan.

Blok yang telah berhasil diunggah dengan Put Block From URL operasi tidak menjadi bagian dari blob sampai diterapkan dengan Put Block List. Sebelum Put Block List dipanggil untuk menerapkan blob baru atau yang diperbarui, setiap panggilan ke Get Blob mengembalikan konten blob tanpa dimasukkannya blok yang tidak dikomit.

Jika Anda mengunggah blok yang memiliki ID blok yang sama dengan blok lain yang belum diterapkan, blok terakhir yang diunggah dengan ID tersebut diterapkan pada operasi yang berhasil Put Block List berikutnya.

Setelah Put Block List dipanggil, semua blok yang tidak dikomit yang ditentukan dalam daftar blokir diterapkan sebagai bagian dari blob baru. Setiap blok yang tidak dikomit yang tidak ditentukan dalam daftar blokir untuk blob adalah sampah yang dikumpulkan dan dihapus dari Blob Storage. Setiap blok yang tidak dilakukan juga merupakan sampah yang dikumpulkan jika tidak ada panggilan yang berhasil ke Put Block From URL atau Put Block List pada blob yang sama dalam seminggu setelah operasi terakhir yang berhasil Put Block From URL . Jika Put Blob dipanggil pada blob, setiap blok yang tidak dikomit adalah sampah yang dikumpulkan.

Jika blob memiliki sewa aktif, klien harus menentukan ID sewa yang valid pada permintaan untuk menulis blok ke blob. Jika klien tidak menentukan ID sewa atau menentukan ID sewa yang tidak valid, Blob Storage mengembalikan kode status 412 (Prasyarat Gagal). Jika klien menentukan ID sewa tetapi blob tidak memiliki sewa aktif, Blob Storage juga mengembalikan kode status 412 (Prasyarat Gagal).

Untuk blob tertentu, semua ID blok harus memiliki panjang yang sama. Jika blok diunggah dengan ID blok dengan panjang yang berbeda dari ID blok untuk blok yang tidak diterapkan yang ada, layanan mengembalikan kode respons kesalahan 400 (Permintaan Buruk).

Put Block From URL Panggilan tidak memperbarui waktu terakhir yang dimodifikasi dari blob yang ada.

Memanggil Put Block From URL pada blob halaman mengembalikan kesalahan.

Memanggil Put Block From URL pada blob 'arsip' mengembalikan kesalahan, dan memanggilnya pada hot blob atau cool tidak mengubah tingkat blob.

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 Put Block From URL permintaan berdasarkan jenis akun penyimpanan:

Operasi Jenis akun penyimpanan Kategori penagihan
Put Block From URL (akun tujuan1) Objek besar biner blok premium
Tujuan umum standar v2
Tujuan umum standar v1
Operasi tulis
Put Block From URL (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.
2Akun sumber menimbulkan satu transaksi untuk setiap permintaan baca ke objek sumber.

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

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

Lihat juga