Dapatkan Daftar Blokir

Operasi ini Get Block List mengambil daftar blok yang telah diunggah sebagai bagian dari blob blok.

Ada dua daftar blok yang dipertahankan untuk blob:

  • Daftar Blokir yang Diterapkan: Daftar blok yang telah berhasil diterapkan ke blob tertentu dengan Put Block List.

  • Daftar Blok yang Tidak Dikomit: Daftar blok yang telah diunggah untuk blob menggunakan Put Block, tetapi belum dilakukan. Blok ini disimpan di Azure dalam kaitannya dengan blob, tetapi belum membentuk bagian dari blob.

Anda dapat memanggil Get Block List untuk mengembalikan daftar blokir yang diterapkan, daftar blokir yang tidak dikomit, atau kedua daftar. Anda juga dapat memanggil operasi ini untuk mengambil daftar blok yang diterapkan untuk rekam jepret.

Minta

Permintaan Get Block List dapat dibuat sebagai berikut. HTTPS disarankan. Ganti myaccount dengan nama akun penyimpanan Anda:

URI Permintaan Metode GET Versi HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=<DateTime>

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&versionid=<DateTime>
HTTP/1.1

URI layanan penyimpanan yang ditimulasi

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

URI Permintaan Metode GET Versi HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist HTTP/1.1

Untuk informasi selengkapnya, lihat Menggunakan emulator Azure Storage untuk Pengembangan dan Pengujian.

Parameter URI

Parameter tambahan berikut dapat ditentukan pada URI permintaan.

URI Parameter Deskripsi
snapshot Opsional. Parameter rekam jepret adalah nilai buram DateTime yang, saat ada, menentukan daftar blob untuk diambil. Untuk informasi selengkapnya tentang bekerja dengan rekam jepret blob, lihat Membuat Rekam Jepret Blob.
versionid Opsional untuk versi 2019-12-12 dan yang lebih baru. Parameter versionid adalah nilai buram DateTime yang, saat ada, menentukan versi blob yang akan diambil.
blocklisttype Menentukan apakah akan mengembalikan daftar blok yang diterapkan, daftar blok yang tidak diterapkan, atau kedua daftar bersama-sama. Nilai yang valid adalah committed, uncommitted, atau all. Jika Anda menghilangkan parameter ini, Get Block List mengembalikan daftar blok yang diterapkan.
timeout Opsional. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur Batas Waktu untuk Operasi Blob Service.

Judul 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 resmi, opsional untuk permintaan anonim. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage.
x-ms-lease-id:<ID> Opsional. Jika header ini ditentukan, operasi akan dilakukan hanya jika kedua kondisi berikut terpenuhi:

- Sewa blob saat ini aktif.
- ID sewa yang ditentukan dalam permintaan cocok dengan blob.

Jika header ini ditentukan dan kedua kondisi ini tidak terpenuhi, permintaan akan gagal dan operasi akan 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 analitik saat pengelogan analitik penyimpanan diaktifkan. Menggunakan header ini sangat direkomendasikan untuk mengkorelasi aktivitas sisi klien dengan permintaan yang diterima oleh server. Untuk informasi selengkapnya, lihat Tentang Pengelogan Storage Analytics dan Pengelogan Azure: Menggunakan Log untuk Melacak Permintaan Storage.

Operasi ini juga mendukung penggunaan header bersyar untuk menjalankan operasi hanya jika kondisi tertentu terpenuhi. Untuk informasi selengkapnya, lihat Menentukan Header Kondisional untuk Operasi Blob Service.

Isi Permintaan

Tidak ada.

Permintaan Sampel

Contoh URI permintaan berikut mengembalikan daftar blok yang diterapkan untuk blob bernama MOV1.avi:

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=committed HTTP/1.1  

Contoh permintaan URI berikut mengembalikan daftar blok yang diterapkan dan yang tidak diterapkan:

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=all HTTP/1.1  

Contoh permintaan URI berikut mengembalikan daftar blok yang diterapkan untuk rekam jepret. Perhatikan bahwa rekam jepret hanya terdiri dari blok yang diterapkan, sehingga tidak ada blok yang tidak diterapkan yang terkait dengannya.

GET http://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=2009-09-30T20%3a11%3a15.2735974Z  

Respons

Respons mencakup kode status HTTP, sekumpulan header respons, dan isi respons yang berisi daftar blok.

Kode Status

Operasi yang berhasil mengembalikan kode status 200 (OK).

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.

Header respons Deskripsi
Last-Modified Tanggal/waktu blob terakhir diubah. Format tanggal mengikuti RFC 1123. Lihat Representasi Nilai Date-Time di Header untuk informasi selengkapnya. Header ini dikembalikan hanya jika blob telah menerapkan blok.

Setiap operasi yang memodifikasi blob, termasuk pembaruan pada metadata atau properti blob, mengubah waktu terakhir blob yang dimodifikasi.
ETag ETag untuk blob. Header ini dikembalikan hanya jika blob telah menerapkan blok.
Content-Type Jenis konten MIME dari blob. Nilai defaultnya adalah application/xml.
x-ms-blob-content-length Ukuran blob dalam byte.
x-ms-request-id Header ini 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 layanan Blob yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru.

Header ini juga dikembalikan untuk permintaan anonim tanpa versi yang ditentukan jika kontainer ditandai untuk akses publik menggunakan blob service versi 2009-09-19. Perhatikan bahwa hanya daftar blok yang diterapkan yang dapat dikembalikan melalui permintaan anonim.
Date Nilai tanggal/waktu UTC yang dihasilkan oleh layanan yang menunjukkan waktu di mana respons dimulai.
x-ms-client-request-id Header ini 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 1024 karakter ASCII yang terlihat. x-ms-client-request-id Jika header tidak ada dalam permintaan, header ini tidak akan ada dalam respons.

Operasi ini juga mendukung penggunaan header bersyarah untuk mendapatkan daftar blokir hanya jika kondisi tertentu terpenuhi. Untuk informasi selengkapnya, lihat Menentukan Header Kondisional untuk Operasi Blob Service.

Isi Respons

Format isi respons untuk permintaan yang hanya mengembalikan blok yang diterapkan adalah sebagai berikut:

<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <CommittedBlocks>  
    <Block>  
      <Name>base64-encoded-block-id</Name>  
      <Size>size-in-bytes</Size>  
    </Block>  
  <CommittedBlocks>  
</BlockList>  

Format isi respons untuk permintaan yang mengembalikan blok yang diterapkan dan tidak diterapkan adalah sebagai berikut:

  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <CommittedBlocks>  
     <Block>  
        <Name>base64-encoded-block-id</Name>  
        <Size>size-in-bytes</Size>  
     </Block>  
  </CommittedBlocks>  
  <UncommittedBlocks>  
    <Block>  
      <Name>base64-encoded-block-id</Name>  
      <Size>size-in-bytes</Size>  
    </Block>  
  </UncommittedBlocks>  
 </BlockList>  
  

Respons Sampel

Dalam contoh berikut, blocklisttype parameter diatur ke committed, sehingga hanya blok yang diterapkan blob yang dikembalikan dalam respons.

HTTP/1.1 200 OK  
Transfer-Encoding: chunked  
Content-Type: application/xml  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23  
Date: Sun, 25 Sep 2011 00:33:19 GMT  
  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <CommittedBlocks>  
    <Block>  
      <Name>BlockId001</Name>  
      <Size>4194304</Size>  
    </Block>  
    <Block>  
      <Name>BlockId002</Name>  
      <Size>4194304</Size>  
    </Block>  
  </CommittedBlocks>  
</BlockList>  

Dalam contoh ini, blocklisttype parameter diatur ke all, dan blok yang diterapkan dan tidak dilakukan blob dikembalikan dalam respons.

HTTP/1.1 200 OK  
Transfer-Encoding: chunked  
Content-Type: application/xml  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23  
Date: Sun, 25 Sep 2011 00:35:56 GMT  
  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <CommittedBlocks>  
    <Block>  
      <Name>BlockId001</Name>  
      <Size>4194304</Size>  
    </Block>  
    <Block>  
      <Name>BlockId002</Name>  
      <Size>4194304</Size>  
    </Block>  
  </CommittedBlocks>  
  <UncommittedBlocks>  
    <Block>  
      <Name>BlockId003</Name>  
      <Size>4194304</Size>  
    </Block>  
    <Block>  
      <Name>BlockId004</Name>  
      <Size>1024000</Size>  
    </Block>  
  </UncommittedBlocks>  
</BlockList>  

Dalam contoh berikutnya ini, blocklisttype parameter diatur ke all, tetapi blob belum diterapkan, sehingga CommittedBlocks elemen kosong.

HTTP/1.1 200 OK  
Transfer-Encoding: chunked  
Content-Type: application/xml  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23  
Date: Wed, 14 Sep 2011 00:40:22 GMT  
  
<?xml version="1.0" encoding="utf-8"?>  
<BlockList>  
  <CommittedBlocks />  
  <UncommittedBlocks>  
    <Block>  
      <Name>BlockId001</Name>  
      <Size>1024</Size>  
    </Block>  
    <Block>  
      <Name>BlockId002</Name>  
      <Size>1024</Size>  
    </Block>  
    <Block>  
      <Name>BlockId003</Name>  
      <Size>1024</Size>  
    </Block>  
    <Block>  
      <Name>BlockId004</Name>  
      <Size>1024</Size>  
    </Block>  
  </UncommittedBlocks>  
</BlockList>  

Authorization

Jika ACL kontainer diatur untuk memungkinkan akses anonim, klien apa pun dapat memanggil Get Block List; namun, hanya blok yang diterapkan yang dapat diakses secara publik. Akses ke daftar blokir yang tidak dikomit dibatasi untuk pemilik akun dan kepada siapa pun yang menggunakan Tanda Tangan Akses Bersama yang memiliki izin untuk membaca blob ini atau kontainernya.

Keterangan

Panggil Get Block List untuk mengembalikan daftar blok yang telah diterapkan ke blob blok, daftar blok yang belum diterapkan, atau kedua daftar. blocklisttype Gunakan parameter untuk menentukan daftar blok mana yang akan dikembalikan. Daftar blok yang diterapkan dikembalikan dalam urutan yang sama dengan yang dilakukan oleh operasi Put Block List .

Anda dapat menggunakan daftar blokir yang tidak dikomit untuk menentukan blok mana yang hilang dari blob jika panggilan ke Put Block atau Put Block List telah gagal. Daftar blok yang tidak dikomit dikembalikan dalam urutan alfabet. Jika ID blok telah diunggah lebih dari sekali, hanya blok yang terakhir diunggah yang muncul dalam daftar.

Perhatikan bahwa ketika blob belum diterapkan, memanggil Get Block List dengan blocklisttype=all mengembalikan blok yang tidak dikomit, dan CommittedBlocks elemen kosong.

Get Block List tidak mendukung konkurensi saat membaca daftar blok yang tidak dikomit. Panggilan ke Get Block List tempat blocklisttype=uncommitted atau blocklisttype=all memiliki tingkat permintaan maksimum yang lebih rendah daripada operasi baca lainnya. Untuk detail tentang throughput target untuk operasi baca, lihat Azure Storage Skalabilitas dan Target Performa.

Dimulai dengan versi 2019-12-12, blob blok mungkin berisi blok hingga ukuran 4000 MiB. Untuk melindungi aplikasi menggunakan bilangan bulat 32-bit yang ditandatangani untuk mewakili ukuran blok, panggilan Get Block List pada blob blok yang berisi blok yang lebih besar dari 100 MiB dengan versi REST sebelum 2019-12-12 menghasilkan kode status 409 (Konflik).

Get Block List hanya berlaku untuk blob blok. Get Block List Panggilan pada blob halaman menghasilkan kode status 400 (Permintaan Buruk).

Get Block List pada blob blok yang diarsipkan akan gagal.

Lihat juga

Mengotorisasi permintaan ke Azure Storage
Kode Status dan Kesalahan
Kode Kesalahan Layanan Blob
Mengatur Batas Waktu untuk Operasi Blob Service