Mengunggah blob dengan JavaScript atau TypeScript
Artikel ini memperlihatkan cara mengunggah blob menggunakan pustaka klien Azure Storage untuk JavaScript. Anda dapat mengunggah data ke blob blok dari jalur file, aliran, buffer, atau string teks. Anda juga dapat mengunggah blob dengan tag indeks.
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 melakukan operasi unggahan. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk operasi REST API berikut:
Mengunggah data ke blob blok
Anda dapat menggunakan salah satu metode berikut untuk mengunggah data ke blob blok:
- unggah (metode pengunggahan non-paralel)
- uploadData
- uploadFile (hanya tersedia dalam runtime Node.js)
- uploadStream (hanya tersedia dalam runtime Node.js)
Masing-masing metode ini dapat dipanggil menggunakan objek BlockBlobClient .
Mengunggah blob blok dari jalur file
Contoh berikut mengunggah blob blok dari jalur file lokal:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadBlobFromLocalPath(containerClient, blobName, localFilePath){
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.uploadFile(localFilePath);
}
Mengunggah blob blok dari aliran
Contoh berikut mengunggah blob blok dengan membuat aliran yang dapat dibaca dan mengunggah aliran:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// readableStream: Readable stream, for example, a stream returned from fs.createReadStream()
async function uploadBlobFromReadStream(containerClient, blobName, readableStream) {
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload data to block blob using a readable stream
await blockBlobClient.uploadStream(readableStream);
}
Mengunggah blob blok dari buffer
Contoh berikut mengunggah blob blok dari buffer Node.js:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// buffer: blob contents as a buffer, for example, from fs.readFile()
async function uploadBlobFromBuffer(containerClient, blobName, buffer) {
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload buffer
await blockBlobClient.uploadData(buffer);
}
Mengunggah blob blok dari string
Contoh berikut mengunggah blob blok dari string:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// fileContentsAsString: blob content
async function uploadBlobFromString(containerClient, blobName, fileContentsAsString){
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.upload(fileContentsAsString, fileContentsAsString.length);
}
Mengunggah blob blok dengan opsi konfigurasi
Anda dapat menentukan opsi konfigurasi pustaka klien saat mengunggah blob. Opsi ini dapat disetel untuk meningkatkan performa, meningkatkan keandalan, dan mengoptimalkan biaya. Contoh kode di bagian ini menunjukkan cara mengatur opsi konfigurasi menggunakan antarmuka BlockBlobParallelUploadOptions , dan cara meneruskan opsi tersebut sebagai parameter ke panggilan metode unggahan.
Tentukan opsi transfer data saat diunggah
Anda dapat mengonfigurasi properti di BlockBlobParallelUploadOptions untuk meningkatkan performa operasi transfer data. Tabel berikut ini mencantumkan properti yang bisa Anda konfigurasi, bersama dengan deskripsi:
Properti | Deskripsi |
---|---|
blockSize |
Ukuran blok maksimum untuk ditransfer untuk setiap permintaan sebagai bagian dari operasi pengunggahan. |
concurrency |
Jumlah maksimum permintaan paralel yang dikeluarkan pada waktu tertentu sebagai bagian dari transfer paralel tunggal. |
maxSingleShotSize |
Jika ukuran data kurang dari atau sama dengan nilai ini, data diunggah dalam satu taruh daripada dipecah menjadi potongan. Jika data diunggah dalam satu bidikan, ukuran blok diabaikan. Nilai defaultnya adalah 256 MiB. |
Contoh kode berikut menunjukkan cara mengatur nilai untuk BlockBlobParallelUploadOptions dan menyertakan opsi sebagai bagian dari panggilan metode pengunggahan. Nilai yang disediakan dalam sampel tidak dimaksudkan untuk menjadi rekomendasi. Untuk menyetel nilai-nilai ini dengan benar, Anda perlu mempertimbangkan kebutuhan spesifik aplikasi Anda.
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithTransferOptions(containerClient, blobName, localFilePath) {
// Specify data transfer options
const uploadOptions = {
blockSize: 4 * 1024 * 1024, // 4 MiB max block size
concurrency: 2, // maximum number of parallel transfer workers
maxSingleShotSize: 8 * 1024 * 1024, // 8 MiB initial transfer size
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob with transfer options
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Untuk mempelajari selengkapnya tentang menyetel opsi transfer data, lihat Penyetelan performa untuk pengunggahan dan unduhan dengan JavaScript.
Mengunggah blob blok dengan tag indeks
Tag indeks blob mengategorikan data di akun penyimpanan Anda menggunakan atribut tag nilai kunci. Tag ini secara otomatis diindeks dan diekspos sebagai indeks multi-dimensi yang dapat dicari untuk menemukan data dengan mudah.
Contoh berikut mengunggah blob blok dengan tag indeks yang diatur menggunakan BlockBlobParallelUploadOptions:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithIndexTags(containerClient, blobName, localFilePath) {
// Specify index tags for blob
const uploadOptions = {
tags: {
'Sealed': 'false',
'Content': 'image',
'Date': '2022-07-18',
}
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob with index tags
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Mengatur tingkat akses blob saat diunggah
Anda dapat mengatur tingkat akses blob saat diunggah dengan menggunakan antarmuka BlockBlobParallelUploadOptions . Contoh kode berikut menunjukkan cara mengatur tingkat akses saat mengunggah blob:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithAccessTier(containerClient, blobName, localFilePath) {
// Specify access tier
const uploadOptions = {
// 'Hot', 'Cool', 'Cold', or 'Archive'
tier: 'Cool',
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob to cool tier
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Mengatur tingkat akses hanya diperbolehkan untuk blob blok. Anda dapat mengatur tingkat akses untuk blob blok ke Hot
, , Cool
Cold
, atau Archive
. Untuk mengatur tingkat akses ke Cold
, Anda harus menggunakan versi pustaka klien minimum 12.13.0.
Untuk mempelajari selengkapnya tentang tingkat akses, lihat Gambaran umum tingkat akses.
Sumber
Untuk mempelajari selengkapnya tentang mengunggah blob menggunakan pustaka klien Azure Blob Storage untuk JavaScript, lihat sumber daya berikut ini.
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 mengunggah blob menggunakan operasi REST API berikut:
- Memasukkan Blob (REST API)
- Put Block (REST API)
Sampel kode
Lihat sampel kode dari artikel ini (GitHub):
- Unggah dari jalur file lokal untuk JavaScript atau TypeScript
- Unggah dari buffer untuk JavaScript atau TypeScript
- Unggah dari aliran untuk JavaScript atau TypeScript
- Unggah dari string untuk JavaScript atau TypeScript
- Unggah dengan opsi transfer untuk JavaScript atau TypeScript
- Unggah dengan tag indeks untuk JavaScript atau TypeScript
- Unggah dengan tingkat akses untuk JavaScript atau TypeScript
Sumber daya pustaka klien
Lihat juga
- Mengelola dan menemukan data Azure Blob dengan tag indeks blob
- Menggunakan tag indeks blob untuk mengelola dan menemukan data di Azure Blob Storage
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.