Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Operasi ini Put Block From URL
membuat blok baru untuk diterapkan sebagai bagian dari blob tempat konten dibaca dari URL. API ini tersedia mulai versi 2018-03-28.
Permohonan
Anda dapat membuat permintaan Put Block From URL
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 ditimulasi
Saat Anda membuat permintaan terhadap layanan penyimpanan yang diemulasi, tentukan nama host emulator dan port layanan Blob sebagai 127.0.0.1:10000
, diikuti dengan nama akun penyimpanan yang diemulasi:
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 Menggunakan emulator Azurite untuk pengembangan Azure Storage lokal.
URI Parameter
Pengaturan | Deskripsi |
---|---|
blockid |
Dibutuhkan. Nilai string Base64 valid yang mengidentifikasi blok. Sebelum pengodean, string harus berukuran kurang dari atau sama dengan 64 byte. Untuk blob yang ditentukan, panjang nilai yang ditentukan untuk blockid parameter harus memiliki ukuran yang sama untuk setiap blok.Catatan: String Base64 harus dikodekan URL. |
timeout |
Fakultatif. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur batas waktu untuk operasi blob service. |
Tajuk permintaan
Header permintaan yang diperlukan dan opsional dijelaskan dalam tabel berikut:
Tajuk permintaan | Deskripsi |
---|---|
Authorization |
Dibutuhkan. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. |
Date atau x-ms-date |
Dibutuhkan. 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 lebih baru. |
Content-Length |
Dibutuhkan. Menentukan jumlah byte yang ditransmisikan dalam isi permintaan. Nilai header ini harus diatur ke 0. Ketika panjangnya tidak 0, operasi gagal dengan kode status 400 (Permintaan Buruk). |
x-ms-copy-source:name |
Dibutuhkan. 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 di URI permintaan. Blob sumber harus bersifat publik atau diizinkan melalui tanda tangan akses bersama. Jika blob sumber bersifat publik, tidak diperlukan otorisasi 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> |
Fakultatif. Menentukan skema otorisasi dan tanda tangan untuk sumber salinan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage. Catatan: Hanya skema pembawa yang didukung untuk Microsoft Entra. Catatan: Jika objek sumber Anda dapat diakses secara publik atau objek sumber Anda berada di akun penyimpanan dan Anda menggunakan token SAS yang diteruskan , x-ms-copy-source:name header ini tidak diperlukan.Header ini didukung dalam versi 2020-10-02 dan yang lebih baru. |
x-ms-source-range |
Fakultatif. Mengunggah hanya 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 layanan Blob. |
x-ms-source-content-md5 |
Fakultatif. Hash MD5 dari konten blok dari URI. Hash ini digunakan untuk memverifikasi integritas blok selama pengangkutan data dari URI. Saat header ini ditentukan, layanan penyimpanan membandingkan hash konten yang telah tiba dari sumber salinan dengan nilai header ini. Catatan: Hash MD5 ini tidak disimpan dengan blob. Jika kedua hash tidak cocok, operasi gagal dengan kode kesalahan 400 (Permintaan Buruk). |
x-ms-source-content-crc64 |
Fakultatif. Hash CRC64 dari konten blok dari URI. Hash ini digunakan untuk memverifikasi integritas blok selama pengangkutan data dari URI. Saat header ini ditentukan, layanan penyimpanan membandingkan hash konten yang telah tiba dari sumber salinan dengan nilai header ini. Catatan: Hash CRC64 ini tidak disimpan dengan blob. Jika kedua hash tidak cocok, operasi gagal dengan kode kesalahan 400 (Permintaan Buruk). Jika keduanya x-ms-source-content-md5 dan x-ms-source-content-crc64 header ada, permintaan gagal dengan 400 (Permintaan Buruk).Header ini didukung dalam versi 2019-02-02 dan yang lebih baru. |
x-ms-encryption-scope |
Fakultatif. 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 |
Fakultatif. 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. |
x-ms-file-request-intent |
Diperlukan jika x-ms-copy-source header adalah URL file Azure dan x-ms-copy-source-authorization header menentukan token OAuth. Nilai yang dapat diterima backup . Header ini menentukan bahwa Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action atau Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action harus diberikan jika disertakan dalam kebijakan RBAC yang ditetapkan ke identitas yang diotorisasi menggunakan header x-ms-copy-source-authorization . Tersedia untuk versi 2025-07-05 dan yang lebih baru. |
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 kumpulan header yang sesuai) bersifat opsional.
Tajuk permintaan | Deskripsi |
---|---|
x-ms-encryption-key |
Dibutuhkan. Kunci enkripsi AES-256 yang dikodekan Base64. |
x-ms-encryption-key-sha256 |
Dibutuhkan. Hash SHA256 yang dikodekan Base64 dari kunci enkripsi. |
x-ms-encryption-algorithm: AES256 |
Dibutuhkan. Menentukan algoritma yang akan digunakan untuk enkripsi. Nilai header ini harus AES256 . |
Isi dari permintaan
Tidak ada.
Permohonan sampel
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
Jawaban
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 Status dan kode kesalahan.
Tajuk 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 .
Respons Header | 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 hanya dikembalikan 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 belum tentu sama dengan nilai yang ditentukan dalam header permintaan. Dikembalikan saat x-ms-source-content-md5 header tidak ada dalam permintaan. |
x-ms-request-id |
Mengidentifikasi permintaan yang dibuat secara unik, 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 ketika 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 header x-ms-client-request-id jika ada dalam permintaan dan nilai berisi tidak lebih dari 1.024 karakter ASCII yang terlihat. Jika header x-ms-client-request-id tidak ada dalam permintaan, header tersebut tidak akan ada dalam respons. |
Contoh tanggapan
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
Otorisasi
Otorisasi diperlukan saat memanggil operasi akses data apa pun di Azure Storage. Anda dapat mengotorisasi operasi Put Block From URL
seperti yang dijelaskan di bawah ini.
Penting
Microsoft merekomendasikan penggunaan ID Microsoft Entra dengan identitas terkelola untuk mengotorisasi permintaan ke Azure Storage. MICROSOFT Entra ID menyediakan keamanan yang unggul dan kemudahan penggunaan dibandingkan dengan otorisasi Kunci Bersama.
- ID Microsoft Entra (disarankan)
-
tanda tangan akses bersama (SAS)
-
kunci bersama
Azure Storage mendukung penggunaan ID Microsoft Entra 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 mungkin 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 layanan Blob.
Untuk mempelajari selengkapnya tentang otorisasi menggunakan ID Microsoft Entra, lihat Mengotorisasi akses ke blob menggunakan ID Microsoft Entra.
Hak akses
Tercantum di bawah ini adalah tindakan RBAC yang diperlukan untuk pengguna, grup, identitas terkelola, atau perwakilan layanan Microsoft Entra untuk memanggil operasi Put Block From URL
, dan peran Azure RBAC bawaan yang paling tidak istimewa yang mencakup tindakan ini:
- tindakan Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
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.
Komentar
Put Block From URL
mengunggah blok untuk disertakan di masa mendatang dalam blob blok. Blob blok dapat menyertakan maksimum 50.000 blok. Setiap blok bisa memiliki ukuran yang berbeda. Ukuran maksimum untuk blok yang diunggah adalah Put Block From URL
100 mebibyte (MiB). Untuk mengunggah blok yang lebih besar (hingga 4.000 MiB), lihat Blok Put.
Dalam versi 2020-10-02 dan yang lebih baru, otorisasi Microsoft Entra didukung untuk sumber operasi salin.
Blob dapat memiliki maksimum 100.000 blok yang tidak diterapkan 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 lebih awal dari 08-04-2020 | 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 kumpulan ini dengan memanggil operasi Put Block List . Setiap blok dalam kumpulan diidentifikasi oleh ID blok yang unik dalam blob tersebut. ID blok dicakup ke blob tertentu, sehingga blob yang berbeda dapat memiliki blok dengan ID yang sama.
Jika Anda memanggil Put Block From URL
blob yang belum ada, blob blok baru dibuat dengan panjang konten 0. Blob ini dihitung oleh List Blobs
operasi jika include=uncommittedblobs
opsi ditentukan. Blok atau blok yang Anda unggah tidak diterapkan sampai 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 jangka waktu tersebut, blob tersebut dikumpulkan sampah.
Blok yang telah berhasil diunggah dengan Put Block From URL
operasi tidak menjadi bagian dari blob hingga diterapkan dengan Put Block List
. Sebelum Put Block List
dipanggil untuk melakukan blob baru atau yang diperbarui, panggilan apa pun ke Get Blob mengembalikan konten blob tanpa penyertaan blok yang tidak diterapkan.
Jika Anda mengupload blok yang memiliki ID blok yang sama dengan blok lain yang belum diterapkan, blok yang terakhir diupload dengan ID tersebut akan diterapkan pada operasi berikutnya yang berhasil Put Block List
.
Setelah Put Block List
dipanggil, semua blok yang tidak diterapkan yang ditentukan dalam daftar blokir diterapkan sebagai bagian dari blob baru. Setiap blok yang tidak diterapkan yang tidak ditentukan dalam daftar blokir untuk blob adalah sampah yang dikumpulkan dan dihapus dari Blob Storage. Setiap blok yang tidak diterapkan juga dikumpulkan sampah jika tidak ada panggilan yang berhasil ke Put Block From URL
atau Put Block List
pada blob yang sama dalam waktu seminggu setelah operasi terakhir yang berhasil Put Block From URL
. Jika Put Blob dipanggil pada blob, blok yang tidak diterapkan akan dikumpulkan sampah.
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 belum diterapkan yang ada, layanan akan mengembalikan kode respons error 400 (Permintaan Buruk).
Memanggil Put Block From URL
tidak memperbarui waktu modifikasi terakhir dari blob yang ada.
Memanggil Put Block From URL
blob halaman mengembalikan kesalahan.
Memanggil Put Block From URL
blob 'arsip' mengembalikan kesalahan, dan memanggilnya pada blob hot
atau cool
tidak mengubah tingkat blob.
Penagihan
Permintaan harga dapat berasal dari klien yang menggunakan API Blob Storage, baik secara 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, transaksi baca bertambah ke kategori penagihan yang berbeda dari transaksi tulis. Tabel berikut ini memperlihatkan kategori penagihan untuk permintaan Put Block From URL
berdasarkan jenis akun penyimpanan:
Operasi | Jenis akun penyimpanan | Kategori penagihan |
---|---|---|
Letakkan Blokir Dari URL (akun tujuan1) | Objek besar biner blok premium Standar tujuan umum versi 2 Standar tujuan umum v1 |
Operasi tulis |
Letakkan Blokir Dari URL (akun sumber2) | Objek besar biner blok premium Standar tujuan umum versi 2 Standar tujuan umum v1 |
Membacakan operasi |
1Akun tujuan dikenakan biaya untuk satu transaksi untuk memulai penulisan tersebut.
2Akun sumber mengeluarkan 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 akan dibebankan ke akun penyimpanan sumber sebagai keluar. Keluar antara akun dalam wilayah yang sama gratis.
Untuk mempelajari tentang harga untuk kategori penagihan yang ditentukan, lihat Harga Azure Blob Storage.