Snapshot Blob

Operasi ini Snapshot Blob membuat rekam jepret baca-saja dari blob.

Minta

Permintaan Snapshot Blob dapat dibuat sebagai berikut. HTTPS disarankan. Ganti myaccount dengan nama akun penyimpanan Anda:

URI Permintaan Metode PUT Versi HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot HTTP/1.1

URI Layanan Storage Emulasi

Saat 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 yang ditimulasikan:

URI Permintaan Metode PUT Versi HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot 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.

Parameter Deskripsi
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 yang diotorisasi. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage.
x-ms-meta-name:value Opsional. Menentukan pasangan nilai nama yang ditentukan pengguna yang terkait dengan blob. Jika tidak ada pasangan nama-nilai yang ditentukan, operasi akan menyalin metadata blob dasar ke rekam jepret. Jika satu atau beberapa pasangan nilai nama ditentukan, rekam jepret dibuat dengan metadata yang ditentukan, dan metadata tidak disalin dari blob dasar.

Perhatikan bahwa dimulai dengan versi 2009-09-19, nama metadata harus mematuhi aturan penamaan untuk pengidentifikasi C#. Lihat Penamaan dan Referensi Kontainer, Blob, dan Metadata untuk informasi selengkapnya.
If-Modified-Since Opsional. Nilai DateTime. Tentukan header kondisional ini untuk snapshot blob hanya jika telah dimodifikasi sejak tanggal/waktu yang ditentukan. Jika blob dasar belum dimodifikasi, blob service mengembalikan kode status 412 (Prasyarat Gagal).
If-Unmodified-Since Opsional. Nilai DateTime. Tentukan header kondisional ini untuk snapshot blob hanya jika belum dimodifikasi sejak tanggal/waktu yang ditentukan. Jika blob dasar telah dimodifikasi, blob service mengembalikan kode status 412 (Prasyarat Gagal).
If-Match Opsional. Nilai ETag. Tentukan nilai ETag untuk header kondisional ini untuk rekam jepret blob hanya jika nilai ETag-nya cocok dengan nilai yang ditentukan. Jika nilai tidak cocok, layanan Blob mengembalikan kode status 412 (Prasyarat Gagal).
If-None-Match Opsional. Nilai ETag.

Tentukan nilai ETag untuk header kondisional ini untuk rekam jepret blob hanya jika nilai ETag-nya tidak cocok dengan nilai yang ditentukan. Jika nilainya identik, blob service mengembalikan kode status 412 (Prasyarat Gagal).
x-ms-encryption-scope Opsional. Menunjukkan cakupan enkripsi yang akan digunakan untuk mengenkripsi konten permintaan. Header ini didukung dalam versi 2019-02-02 atau yang lebih baru.
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 Snapshot Blob 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 Storage Analytics Logging dan Azure Logging: Menggunakan Log untuk Melacak Permintaan Storage.

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

Header Permintaan (Kunci enkripsi yang disediakan pelanggan)

Dimulai dengan 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. Jika blob sebelumnya telah dienkripsi dengan kunci yang disediakan pelanggan, header ini harus disertakan pada permintaan untuk menyelesaikan operasi baca dengan sukses.

Header permintaan 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.

Respons

Respons mencakup kode status HTTP dan sekumpulan header respons.

Kode Status

Operasi yang berhasil mengembalikan kode status 201 (Dibuat).

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.

Sintaks Deskripsi
x-ms-snapshot: <DateTime> Header ini mengembalikan nilai DateTime yang secara unik mengidentifikasi rekam jepret. Nilai header ini menunjukkan versi rekam jepret, dan dapat digunakan dalam permintaan berikutnya untuk mengakses rekam jepret. Perhatikan bahwa nilai ini buram.
ETag ETag rekam jepret. Jika versi permintaan adalah 2011-08-18 atau yang lebih baru, nilai ETag akan berada dalam tanda kutip. Perhatikan bahwa rekam jepret tidak dapat ditulis, sehingga ETag rekam jepret tertentu tidak akan pernah berubah. Namun, ETag rekam jepret akan berbeda dari blob dasar jika metadata baru disediakan dengan Snaphot Blob permintaan. Jika tidak ada metadata yang ditentukan dengan permintaan, ETag rekam jepret akan identik dengan blob dasar pada saat rekam jepret diambil.
Last-Modified Waktu terakhir yang dimodifikasi dari rekam jepret. Format tanggal mengikuti RFC 1123. Untuk informasi selengkapnya, lihat Representasi Nilai Date-Time di Header.

Perhatikan bahwa rekam jepret tidak dapat ditulis, sehingga waktu terakhir yang dimodifikasi dari rekam jepret tertentu tidak akan pernah berubah. Namun, waktu terakhir yang dimodifikasi dari rekam jepret akan berbeda dari blob dasar jika metadata baru disediakan dengan Snaphot Blob permintaan. Jika tidak ada metadata yang ditentukan dengan permintaan, waktu terakhir rekam jepret yang dimodifikasi akan identik dengan blob dasar pada saat rekam jepret diambil.
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 blob service yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru.
Date Nilai tanggal/waktu UTC yang dihasilkan oleh layanan yang menunjukkan waktu dimulainya respons.
x-ms-request-server-encrypted: true/false Versi 2019-02-02 atau yang lebih baru. Nilai header ini diatur ke true jika konten permintaan berhasil dienkripsi menggunakan algoritma yang ditentukan, dan false sebaliknya.
x-ms-encryption-key-sha256 Versi 2019-02-02 atau yang lebih baru. Header ini dikembalikan jika permintaan menggunakan kunci yang disediakan pelanggan untuk enkripsi, sehingga klien dapat memastikan konten permintaan berhasil dienkripsi menggunakan kunci yang disediakan.
x-ms-encryption-scope Versi 2019-02-02 atau yang lebih baru. Header ini dikembalikan jika permintaan menggunakan cakupan enkripsi, sehingga klien dapat memastikan konten permintaan berhasil dienkripsi menggunakan cakupan enkripsi.
x-ms-version-id: <DateTime> Versi 2019-12-12 dan yang lebih baru. Header ini mengembalikan nilai DateTime buram yang secara unik mengidentifikasi blob. Nilai header ini menunjukkan Versi blob, dan dapat digunakan dalam permintaan berikutnya untuk mengakses blob.
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.

Isi Respons

Tidak ada.

Authorization

Hanya pemilik akun yang dapat memanggil operasi ini.

Keterangan

Rekam jepret menyediakan versi blob baca-saja. Setelah snapshot dibuat, snapshot dapat dibaca, disalin, atau dihapus, tetapi tidak dimodifikasi.

Rekam jepret menyediakan cara mudah untuk mencadangkan data blob. Anda dapat menggunakan rekam jepret untuk memulihkan blob ke versi yang lebih lama dengan memanggil Salin Blob untuk menimpa blob dasar dengan rekam jepretnya.

Saat Anda membuat rekam jepret, blob service mengembalikan nilai DateTime yang secara unik mengidentifikasi rekam jepret relatif terhadap blob dasarnya. Anda dapat menggunakan nilai ini untuk melakukan operasi lebih lanjut pada rekam jepret. Perhatikan bahwa Anda harus memperlakukan nilai DateTime ini sebagai buram.

Nilai DateTime mengidentifikasi rekam jepret pada URI. Misalnya, blob dasar dan rekam jepretnya memiliki URI yang mirip dengan yang berikut:

  • Blob dasar:http://myaccount.blob.core.windows.net/mycontainer/myblob

  • Snapshot:http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Perhatikan bahwa setiap kali Anda memanggil Snapshot Blob operasi, rekam jepret baru dibuat, dengan nilai DateTime yang unik. Blob dapat mendukung sejumlah rekam jepret. Rekam jepret yang ada tidak pernah ditimpa, tetapi harus dihapus secara eksplisit dengan memanggil Hapus Blob dan mengatur x-ms-include-snapshots header ke nilai yang sesuai.

Membaca, Menyalin, dan Menghapus Rekam Jepret

Panggilan yang berhasil untuk Snapshot Blob mengembalikan nilai DateTime di x-ms-snapshot header respons. Anda kemudian dapat menggunakan nilai DateTime ini untuk melakukan operasi baca, hapus, atau salin pada versi rekam jepret tertentu. Setiap operasi Blob service yang valid untuk rekam jepret dapat dipanggil dengan menentukan ?snapshot=<DateTime> setelah nama blob.

Menyalin Properti blob dan Metadata

Saat Anda membuat rekam jepret blob, properti sistem berikut disalin ke rekam jepret dengan nilai yang sama:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (for page blobs only)

  • x-ms-blob-committed-block-count (for append blobs only)

  • x-ms-copy-id (versi 2012-02-12 dan yang lebih baru)

  • x-ms-copy-status (versi 2012-02-12 dan yang lebih baru)

  • x-ms-copy-source (versi 2012-02-12 dan yang lebih baru)

  • x-ms-copy-progress (versi 2012-02-12 dan yang lebih baru)

  • x-ms-copy-completion-time (versi 2012-02-12 dan yang lebih baru)

  • x-ms-copy-status-description (versi 2012-02-12 dan yang lebih baru)

Daftar blok yang diterapkan blob dasar juga disalin ke rekam jepret, jika blob adalah blob blok. Blok yang tidak dikomit tidak disalin.

Blob rekam jepret selalu berukuran sama dengan blob dasar pada saat rekam jepret diambil, sehingga nilai Content-Length header untuk blob rekam jepret akan sama dengan blob dasar.

Anda dapat menentukan satu atau beberapa nilai metadata baru untuk rekam jepret dengan menentukan x-ms-meta-name:value header pada permintaan. Jika header ini tidak ditentukan, metadata yang terkait dengan blob dasar disalin ke rekam jepret.

Setiap tag yang terkait dengan blob dasar disalin ke rekam jepret. Tidak dimungkinkan untuk mengatur nilai tag baru untuk rekam jepret.

Menentukan Header Bersyarah

Anda dapat menentukan header kondisional pada permintaan untuk rekam jepret blob hanya jika kondisi terpenuhi. Jika kondisi yang ditentukan tidak terpenuhi, rekam jepret tidak dibuat, dan layanan Blob mengembalikan kode status 412 (Prasyarat Gagal), bersama dengan informasi kesalahan tambahan tentang kondisi yang tidak terpenuhi.

Membuat Rekam Jepret Blob Sewaan

Jika blob dasar memiliki sewa aktif, Anda dapat mengambil rekam jepret blob selama salah satu kondisi berikut benar dari permintaan:

  • Header kondisional x-ms-lease-id ditentukan, dan ID sewa aktif untuk blob dasar disertakan dalam permintaan. Kondisi ini menentukan bahwa rekam jepret dibuat hanya jika sewa aktif dan ID sewa yang ditentukan cocok dengan yang terkait dengan blob.

  • Header x-ms-lease-id tidak ditentukan sama sekali, dalam hal ini sewa tulis eksklusif diabaikan.

Perhatikan bahwa sewa yang terkait dengan blob dasar tidak disalin ke rekam jepret. Rekam jepret tidak dapat disewa.

Menyalin Rekam Jepret

Ketika blob dasar disalin menggunakan operasi Salin Blob , rekam jepret apa pun dari blob dasar tidak disalin ke blob tujuan. Saat blob tujuan ditimpa dengan salinan, rekam jepret apa pun yang terkait dengan blob tujuan tetap utuh dengan namanya.

Anda dapat menyalin blob rekam jepret di atas blob dasarnya untuk memulihkan versi blob yang lebih lama. Rekam jepret tetap ada, tetapi blob dasar ditimpa dengan salinan yang dapat dibaca dan ditulis.

Catatan

Mempromosikan rekam jepret tidak dikenakan biaya tambahan untuk sumber daya penyimpanan, karena blok atau halaman dibagikan antara rekam jepret dan blob dasar.
Mengatur tingkat blob pada rekam jepret diizinkan memulai REST versi 2019-12-12. Jika tingkat diatur pada blob akar, semua rekam jepret akan mewarisi tingkat dari blob dasar. Mengambil rekam jepret pada blob yang diarsipkan akan gagal. Secara eksplisit mengatur tingkat pada objek akan menghasilkan penagihan untuk ukuran penuh objek. Mengambil rekam jepret blob yang memiliki set tingkat akan menghasilkan penagihan salinan lengkap blob akar dan rekam jepret. Untuk informasi terperinci tentang tingkatan tingkat blob blok, lihat Tingkat penyimpanan panas, dingin, dan arsip.

Rekam jepret di Akun Premium Storage

Ada beberapa perbedaan antara akun Azure Premium Storage dan akun penyimpanan standar dalam hal rekam jepret:

  • Jumlah rekam jepret per blob halaman dalam akun Premium Storage dibatasi hingga 100. Jika batas tersebut terlampaui, Snapshot Blob operasi mengembalikan kode kesalahan 409 (SnapshotCountExceeded).

  • Rekam jepret blob halaman di akun Premium Storage dapat diambil setiap sepuluh menit sekali. Jika laju tersebut terlampaui, Snapshot Blob operasi mengembalikan kode kesalahan 409 (SnaphotOperationRateExceeded).

  • Membaca rekam jepret blob halaman di akun Premium Storage melalui Get Blob tidak didukung. Memanggil Get Blob rekam jepret di akun Premium Storage mengembalikan kode kesalahan 400 (Operasi Tidak Valid). Namun, memanggil Dapatkan Properti Blob dan Dapatkan Metadata Blob terhadap rekam jepret didukung.

    Untuk membaca rekam jepret, Anda dapat menggunakan operasi Salin Blob untuk menyalin rekam jepret ke blob halaman lain di akun. Blob tujuan untuk operasi salin tidak boleh memiliki rekam jepret yang ada. Jika blob tujuan memang memiliki rekam jepret, maka Copy Blob mengembalikan kode kesalahan 409 (SnapshotsPresent).

Untuk informasi selengkapnya tentang memanggil operasi REST pada sumber daya Azure Premium Storage, lihat Menggunakan Operasi Blob Service dengan Azure Premium Storage.

Rekam jepret dengan penerapan versi diaktifkan

Saat penerapan versi diaktifkan, membuat rekam jepret blob juga menghasilkan versi baru dan menyimpan versi blob dasar sebelumnya. Parameter x-ms-version-id mengembalikan nilai DateTime buram untuk versi baru blob.

Lihat juga

Membuat Rekam Jepret Blob
Mengotorisasi permintaan ke Azure Storage
Kode Status dan Kesalahan
Kode Kesalahan Layanan Blob