Mulai cepat: Kelola blob dengan SDK JavaScript v12 di Node.js

Dalam panduan mulai cepat ini, Anda akan belajar cara mengelola blob menggunakan Node.js. Blob adalah objek yang dapat menyimpan banyak data teks atau biner, termasuk gambar, dokumen, media streaming, dan data arsip.

Contoh cuplikan kode ini menunjukkan cara melakukan tugas berikut menggunakan paket penyimpanan Azure Blob untuk JavaScript:

Sumber daya tambahan:

Referensi APIKode sumber pustakaPaket (npm)Sampel

Prasyarat

Model objek

Penyimpanan Azure Blob dioptimalkan untuk menyimpan data tidak terstruktur dalam jumlah besar. Data tidak terstruktur adalah data yang tidak mematuhi model atau definisi data tertentu, seperti data teks atau biner. Penyimpanan blob menawarkan tiga jenis sumber daya:

  • Akun penyimpanan
  • Kontainer di akun penyimpanan
  • Blob di dalam kontainer

Diagram berikut menunjukkan hubungan antara ketiga sumber daya ini.

Diagram of Blob storage architecture

Gunakan kelas JavaScript berikut untuk berinteraksi dengan sumber daya tersebut:

  • BlobServiceClient: Kelas BlobServiceClient ini memungkinkan Anda untuk memanipulasi sumber daya Azure Storage dan kontainer blob.
  • ContainerClient: Kelas ContainerClient ini memungkinkan Anda untuk memanipulasi kontainer Azure Storage dan blobnya.
  • BlobClient: Kelas BlobClient ini memungkinkan Anda memanipulasi blob Azure Storage.

Membuat proyek Node.js Anda

Buat aplikasi JavaScript bernama blob-quickstart-v12.

  1. Di jendela konsol (seperti cmd, PowerShell, atau Bash), buat direktori baru untuk proyek.

    mkdir blob-quickstart-v12
    
  2. Beralih ke direktori blob-quickstart-v12 yang baru dibuat.

    cd blob-quickstart-v12
    
  3. Buatpackage.json.

    npm init -y
    
  4. Buka proyek di Visual Studio Code:

    code .
    

Instal paket npm untuk penyimpanan blob

  1. Pasang paket npm Azure Storage:

    npm install @azure/storage-blob
    
  2. Instal dependensi lain yang digunakan dalam mulai cepat ini:

    npm install uuid dotenv
    

Membuat file JavaScript

Dari direktori proyek:

  1. Buat file baru bernama index.js.

  2. Salin kode berikut ke dalam file. Lebih banyak kode akan ditambahkan saat Anda melalui mulai cepat ini.

    const { BlobServiceClient } = require('@azure/storage-blob');
    const { v1: uuidv1} = require('uuid');
    require('dotenv').config()
    
    async function main() {
        console.log('Azure Blob storage v12 - JavaScript quickstart sample');
    
        // Quick start code goes here
    
    }
    
    main()
    .then(() => console.log('Done'))
    .catch((ex) => console.log(ex.message));
    

Salin kredensial Anda dari portal Microsoft Azure

Saat aplikasi contoh membuat permintaan ke Azure Storage, aplikasi contoh harus diotorisasi. Untuk mengotorisasi permintaan, tambahkan kredensial akun penyimpanan Anda ke aplikasi sebagai string koneksi. Untuk melihat kredensial akun penyimpanan Anda, ikuti langkah-langkah berikut:

  1. Masuk ke portal Azure.

  2. Temukan akun penyimpanan Anda.

  3. Di panel menu akun penyimpanan, di Keamanan + jaringan, pilih Kunci akses. Di sini, Anda dapat melihat kunci akses akun dan string koneksi lengkap untuk setiap kunci.

    Screenshot that shows where the access key settings are in the Azure portal

  4. Di panel Kunci akses, pilih Tampilkan kunci.

  5. Di bagian kunci1, cari nilai String koneksi. Pilih ikon Salin ke clipboard untuk menyalin string koneksi. Anda akan menambah nilai string koneksi ke variabel lingkungan di bagian berikutnya.

    Screenshot showing how to copy a connection string from the Azure portal

Konfigurasikan string koneksi penyimpanan Anda

Setelah menyalin string koneksi Anda, tuliskan ke variabel lingkungan baru di komputer lokal yang menjalankan aplikasi. Untuk mengatur variabel lingkungan, buka jendela konsol, dan ikuti petunjuk untuk sistem operasi Anda. Ganti <yourconnectionstring> dengan string koneksi Anda yang sebenarnya.

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Setelah menambahkan variabel lingkungan di Windows, Anda harus memulai instans baru dari jendela perintah.

Menghidupkan ulang program

Setelah Anda menambahkan variabel lingkungan, hidupkan ulang semua program yang sedang berjalan yang perlu membaca variabel lingkungan. Misalnya, hidupkan ulang lingkungan pengembangan atau editor sebelum Anda melanjutkan.

Dapatkan string koneksi

Kode di bawah ini mengambil string koneksi untuk akun penyimpanan dari variabel lingkungan yang dibuat di bagian Konfigurasikan string koneksi penyimpanan Anda.

Tambahkan kode ini di dalam fungsi main:

const AZURE_STORAGE_CONNECTION_STRING = 
  process.env.AZURE_STORAGE_CONNECTION_STRING;

if (!AZURE_STORAGE_CONNECTION_STRING) {
  throw Error("Azure Storage Connection string not found");
}

Buat kontainer

  1. Tentukan nama untuk kontainer baru. Nama kontainer harus menggunakan huruf kecil.

    Untuk informasi selengkapnya tentang penamaan kontainer dan blob, lihat Menamai dan Mereferensikan Kontainer, Blob, dan Metadata.

  2. Tambahkan kode ini ke akhir fungsi main:

    // Create the BlobServiceClient object which will be used to create a container client
    const blobServiceClient = BlobServiceClient.fromConnectionString(
      AZURE_STORAGE_CONNECTION_STRING
    );
    
    // Create a unique name for the container
    const containerName = "quickstart" + uuidv1();
    
    console.log("\nCreating container...");
    console.log("\t", containerName);
    
    // Get a reference to a container
    const containerClient = blobServiceClient.getContainerClient(containerName);
    // Create the container
    const createContainerResponse = await containerClient.create();
    console.log(`Container was created successfully.\n\trequestId:${createContainerResponse.requestId}\n\tURL: ${containerClient.url}`);
    

    Buat instans kelas BlobServiceClient dengan memanggil metode fromConnectionString. Kemudian, panggil metode getContainerClient untuk mendapatkan referensi kontainer. Terakhir, panggil buat untuk membuat kontainer dalam akun penyimpanan Anda.

Mengunggah blob ke kontainer

Salin kode berikut ke akhir main fungsi untuk mengunggah string teks ke blob:

// Create a unique name for the blob
const blobName = "quickstart" + uuidv1() + ".txt";

// Get a block blob client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);

// Display blob name and url
console.log(`\nUploading to Azure storage as blob\n\tname: ${blobName}:\n\tURL: ${blockBlobClient.url}`);

// Upload data to the blob
const data = "Hello, World!";
const uploadBlobResponse = await blockBlobClient.upload(data, data.length);
console.log(`Blob was uploaded successfully. requestId: ${uploadBlobResponse.requestId}`);

Mendapatkan referensi ke objek BlockBlobClient dengan memanggil metode getBlockBlobClient pada ContainerClient dari bagian Buat kontainer. Mengunggah data string teks ke blob dengan memanggil metode unggahan.

Buat daftar blob dalam kontainer

Tambahkan kode berikut ke akhir main fungsi untuk mencantumkan blobs di kontainer.

console.log("\nListing blobs...");

// List the blob(s) in the container.
for await (const blob of containerClient.listBlobsFlat()) {

  // Get Blob Client from name, to get the URL
  const tempBlockBlobClient = containerClient.getBlockBlobClient(blob.name);

  // Display blob name and URL
  console.log(`\n\tname: ${blob.name}\n\tURL: ${tempBlockBlobClient.url}\n`);
}

Kode sebelumnya memanggil metode listBlobsFlat. Dalam kasus ini, hanya satu blob yang telah ditambahkan ke kontainer, sehingga operasi pencantuman hanya mengembalikan satu blob itu.

Mengunduh blob

  1. Tambahkan kode berikut ke akhir main fungsi untuk mengunduh blob yang dibuat sebelumnya ke runtime aplikasi.

    // Get blob content from position 0 to the end
    // In Node.js, get downloaded data by accessing downloadBlockBlobResponse.readableStreamBody
    // In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody
    const downloadBlockBlobResponse = await blockBlobClient.download(0);
    console.log("\nDownloaded blob content...");
    console.log(
      "\t",
      await streamToText(downloadBlockBlobResponse.readableStreamBody)
    );
    

    Kode sebelumnya memanggil metode pengunduhan.

  2. Salin kode berikut setelahmain fungsi untuk mengonversi aliran kembali menjadi string.

    // Convert stream to text
    async function streamToText(readable) {
      readable.setEncoding('utf8');
      let data = '';
      for await (const chunk of readable) {
        data += chunk;
      }
      return data;
    }
    

Hapus kontainer

Tambahkan kode ini ke akhir main fungsi untuk menghapus kontainer dan semua blobs:

// Delete container
console.log("\nDeleting container...");

const deleteContainerResponse = await containerClient.delete();
console.log(
  "Container was deleted successfully. requestId: ",
  deleteContainerResponse.requestId
);

Kode berikut membersihkan sumber daya yang dibuat aplikasi dengan menghapus seluruh kontainer menggunakan metode hapus. Anda juga dapat menghapus file lokal, jika mau.

Jalankan kode

  1. Dari terminal Visual Studio Code, jalankan aplikasi.

    node index.js
    
  2. Output aplikasi mirip dengan contoh berikut:

    Azure Blob storage v12 - JavaScript quickstart sample
    
    Creating container...
             quickstart4a0780c0-fb72-11e9-b7b9-b387d3c488da
    
    Uploading to Azure Storage as blob:
             quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt
    
    Listing blobs...
             quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt
    
    Downloaded blob content...
             Hello, World!
    
    Deleting container...
    Done
    

Telusuri kode di debugger Anda dan periksa portal Azure Anda selama proses berlangsung. Periksa untuk memastikan bahwa kontainer sedang dibuat. Anda dapat membuka blob di dalam kontainer dan melihat isinya.

Gunakan Storage Emulator

Mulai cepat ini membuat kontainer dan blob di cloud Azure. Anda juga dapat menggunakan paket npm penyimpanan Azure Blob untuk membuat sumber daya ini secara lokal di emulator Azure Storage untuk pengembangan dan pengujian.

Pembersihan

  1. Setelah selesai dengan mulai cepat ini, hapus blob-quickstart-v12 direktori.
  2. Jika Anda selesai menggunakan sumber daya Azure Storage Anda, gunakan Azure CLI untuk menghapus sumber daya Storage.

Langkah berikutnya

Dalam mulai cepat ini, Anda belajar cara mengunggah, mengunduh, dan mencantumkan blob menggunakan JavaScript.

Untuk tutorial, sampel, mulai cepat, dan dokumentasi lainnya, kunjungi: