Membuat dan mengelola sewa blob dengan JavaScript atau TypeScript
Artikel ini memperlihatkan cara membuat dan mengelola sewa blob menggunakan pustaka klien Azure Storage untuk JavaScript. Anda dapat menggunakan pustaka klien untuk memperoleh, memperbarui, merilis, dan memutuskan sewa blob.
Prasyarat
- Contoh dalam artikel ini mengasumsikan Anda sudah menyiapkan proyek untuk bekerja dengan pustaka klien Azure Blob Storage untuk JavaScript. Untuk mempelajari tentang menyiapkan proyek Anda, termasuk penginstalan paket, mengimpor modul, dan membuat objek klien resmi untuk bekerja dengan sumber daya data, lihat Mulai menggunakan Azure Blob Storage dan JavaScript.
- Mekanisme otorisasi harus memiliki izin untuk bekerja dengan sewa blob. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk operasi REST API berikut:
Tentang sewa blob
Sewa membuat dan mengelola kunci pada blob untuk operasi tulis dan hapus. Durasi penguncian bisa 15 hingga 60 detik, atau bisa tak terbatas. Sewa pada blob menyediakan akses tulis dan hapus eksklusif ke blob. Untuk menulis ke blob dengan sewa aktif, klien harus menyertakan ID sewa aktif dengan permintaan tulis.
Untuk mempelajari selengkapnya tentang status sewa dan kapan Anda dapat melakukan tindakan tertentu pada sewa, lihat Status sewa dan tindakan.
Semua operasi kontainer diizinkan pada kontainer yang menyertakan blob dengan sewa aktif, termasuk Hapus Kontainer. Oleh karena itu, kontainer dapat dihapus bahkan jika blob di dalamnya memiliki sewa aktif. Gunakan operasi Sewa Kontainer untuk mengontrol hak untuk menghapus kontainer.
Operasi sewa ditangani oleh kelas BlobLeaseClient , yang menyediakan klien yang berisi semua operasi sewa untuk blob dan kontainer. Untuk mempelajari selengkapnya tentang sewa kontainer menggunakan pustaka klien, lihat Membuat dan mengelola sewa kontainer dengan JavaScript.
Mendapatkan sewa
Ketika Anda memperoleh sewa blob, Anda mendapatkan ID sewa yang dapat digunakan kode Anda untuk beroperasi pada blob. Jika blob sudah memiliki sewa aktif, Anda hanya dapat meminta sewa baru dengan menggunakan ID sewa aktif. Namun, Anda dapat menentukan durasi sewa baru.
Untuk memperoleh sewa, buat instans kelas BlobLeaseClient , lalu gunakan salah satu metode berikut:
Contoh berikut memperoleh sewa 30 detik untuk blob:
async function acquireBlobLeaseAsync(blobClient) {
const leaseClient = blobClient.getBlobLeaseClient();
await leaseClient.acquireLease(30);
return leaseClient;
}
Memperpanjang sewa
Anda dapat memperbarui sewa blob jika ID sewa yang ditentukan pada permintaan cocok dengan ID sewa yang terkait dengan blob. Sewa dapat diperpanjang bahkan jika kedaluwarsa, selama blob belum dimodifikasi atau disewakan lagi sejak kedaluwarsa sewa tersebut. Saat Anda memperbarui sewa, durasi reset sewa.
Untuk memperbarui sewa, gunakan salah satu metode berikut pada instans BlobLeaseClient :
Contoh berikut memperbarui sewa untuk blob:
async function renewBlobLeaseAsync(blobClient, leaseID) {
const leaseClient = blobClient.getBlobLeaseClient(leaseID);
await leaseClient.renewLease();
}
Melepaskan sewa
Anda dapat merilis sewa blob jika ID sewa yang ditentukan pada permintaan cocok dengan ID sewa yang terkait dengan blob. Melepaskan sewa memungkinkan klien lain untuk memperoleh sewa untuk blob segera setelah rilis selesai.
Anda dapat merilis sewa menggunakan salah satu metode berikut pada instans JavaScript BlobLeaseClient :
Contoh berikut merilis sewa pada blob:
async function releaseBlobLeaseAsync(blobClient, leaseID) {
const leaseClient = blobClient.getBlobLeaseClient(leaseID);
await leaseClient.releaseLease();
}
Memutuskan sewa
Anda dapat memutuskan sewa blob jika blob memiliki sewa aktif. Setiap permintaan yang diotorisasi dapat memutus sewa; permintaan tidak diperlukan untuk menentukan ID sewa yang cocok. Sewa tidak dapat diperbarui setelah rusak, dan melanggar sewa mencegah sewa baru diperoleh sampai sewa asli kedaluwarsa atau dilepaskan.
Anda dapat memutuskan sewa menggunakan salah satu metode berikut pada instans BlobLeaseClient :
Contoh berikut memutus sewa pada blob:
async function breakBlobLeaseAsync(blobClient) {
const leaseClient = blobClient.getBlobLeaseClient();
await leaseClient.breakLease();
}
Status dan tindakan sewa
Diagram berikut menunjukkan lima status sewa, dan perintah atau peristiwa yang menyebabkan perubahan status sewa.
Tabel berikut mencantumkan lima status sewa, memberikan deskripsi singkat masing-masing, dan mencantumkan tindakan sewa yang diizinkan dalam status tertentu. Tindakan sewa ini menyebabkan transisi status, seperti yang ditunjukkan dalam diagram.
status sewa | Deskripsi | Tindakan sewa diizinkan |
---|---|---|
Tersedia | Sewa tidak terkunci dan dapat diperoleh. | acquire |
Disewakan | Sewa dikunci. | acquire (id sewa yang sama saja), renew , , change , release dan break |
Kedaluwarsa | Durasi sewa telah kedaluwarsa. | acquire , renew , release , dan break |
Melanggar | Sewa telah rusak, tetapi sewa akan terus dikunci sampai periode istirahat berakhir. | release dan break |
Terputus | Sewa telah rusak, dan periode istirahat telah kedaluwarsa. | acquire , release , dan break |
Ketika sewa kedaluwarsa, ID sewa dipertahankan oleh layanan Blob sampai blob dimodifikasi atau disewakan lagi. Klien dapat mencoba memperbarui atau melepaskan sewa menggunakan ID sewa yang kedaluwarsa. Jika operasi ini berhasil, klien tahu bahwa blob belum diubah sejak ID sewa terakhir valid. Jika permintaan gagal, klien tahu bahwa blob dimodifikasi, atau blob disewakan lagi sejak sewa terakhir aktif. Klien kemudian harus memperoleh sewa baru pada blob.
Jika sewa kedaluwarsa daripada dirilis secara eksplisit, klien mungkin perlu menunggu hingga satu menit sebelum sewa baru dapat diperoleh untuk blob. Namun, klien dapat memperbarui sewa dengan ID sewa mereka segera jika blob belum dimodifikasi.
Sewa tidak dapat diberikan untuk rekam jepret blob, karena rekam jepret bersifat baca-saja. Meminta sewa terhadap rekam jepret menghasilkan kode 400 (Bad Request)
status .
Sumber
Untuk mempelajari selengkapnya tentang mengelola sewa blob menggunakan pustaka klien Azure Blob Storage untuk JavaScript, lihat sumber daya berikut ini.
Sampel kode
- Lihat sampel kode JavaScript dan TypeScript dari artikel ini (GitHub)
Operasi REST API
Azure SDK untuk JavaScript berisi pustaka yang dibangun di atas Azure REST API, memungkinkan Anda berinteraksi dengan operasi REST API melalui paradigma JavaScript yang sudah dikenal. Metode pustaka klien untuk mengelola sewa blob menggunakan operasi REST API berikut:
Sumber daya pustaka klien
Lihat juga
Konten terkait
- Artikel ini adalah bagian dari panduan pengembang Blob Storage untuk JavaScript/TypeScript. Untuk mempelajari lebih lanjut, lihat daftar lengkap artikel panduan pengembang di Membangun aplikasi JavaScript/TypeScript Anda.