Berinteraksi dengan API Azure Storage

Selesai

Azure Storage menyediakan REST API untuk bekerja dengan kontainer dan data yang disimpan di setiap akun. Setiap jenis data yang dapat Anda simpan memiliki API independennya sendiri. Ingatlah bahwa kita memiliki empat jenis data tertentu:

  • Blob untuk data yang tidak terstruktur seperti file biner dan teks.
  • Antrean untuk olahpesan tetap.
  • Tabel untuk penyimpanan terstruktur kunci/nilai.
  • File untuk berbagi file SMB tradisional.

Menggunakan REST API

REST API Penyimpanan dapat diakses dari mana saja di Internet oleh aplikasi apa pun yang dapat mengirim permintaan HTTP/HTTPS dan menerima respons HTTP/HTTPS.

Misalnya, jika Anda ingin mencantumkan semua blob dalam kontainer, Anda akan membuat permintaan seperti:

GET https://[url-for-service-account]/?comp=list&include=metadata

Permintaan ini menampilkan blok XML dengan data khusus untuk akun:

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults AccountName="https://[url-for-service-account]/">  
  <Containers>  
    <Container>  
      <Name>container1</Name>  
      <Url>https://[url-for-service-account]/container1</Url>  
      <Properties>  
        <Last-Modified>Sun, 24 Sep 2018 18:09:03 GMT</Last-Modified>  
        <Etag>0x8CAE7D0C4AF4487</Etag>  
      </Properties>  
      <Metadata>  
        <Color>orange</Color>  
        <ContainerNumber>01</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
    <Container>  
      <Name>container2</Name>  
      <Url>https://[url-for-service-account]/container2</Url>  
      <Properties>  
        <Last-Modified>Sun, 24 Sep 2018 17:26:40 GMT</Last-Modified>  
        <Etag>0x8CAE7CAD8C24928</Etag>  
      </Properties>  
      <Metadata>  
        <Color>pink</Color>  
        <ContainerNumber>02</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
    <Container>  
      <Name>container3</Name>  
      <Url>https://[url-for-service-account]/container3</Url>  
      <Properties>  
        <Last-Modified>Sun, 24 Sep 2018 17:26:40 GMT</Last-Modified>  
        <Etag>0x8CAE7CAD8EAC0BB</Etag>  
      </Properties>  
      <Metadata>  
        <Color>brown</Color>  
        <ContainerNumber>03</ContainerNumber>  
        <SomeMetadataName>SomeMetadataValue</SomeMetadataName>  
      </Metadata>  
    </Container>  
  </Containers>  
  <NextMarker>container4</NextMarker>  
</EnumerationResults>  

Namun, pendekatan ini memerlukan penguraian manual dan pembuatan paket HTTP untuk bekerja dengan setiap API. Untuk alasan ini, Azure menyediakan pustaka klien bawaan yang memudahkan layanan untuk bahasa dan kerangka kerja umum.

Menggunakan pustaka klien

Pustaka klien dapat menghemat banyak pekerjaan untuk pengembang aplikasi karena API telah diuji dan sering kali menyediakan pembungkus yang lebih baik di sekitar model data yang dikirim dan diterima oleh REST API.

Microsoft memiliki pustaka klien Azure yang mendukung banyak bahasa dan kerangka kerja, termasuk:

  • .NET
  • Java
  • Python
  • Node.js
  • Go


Logos of supported frameworks you can use with Azure.

Misalnya, untuk mengambil daftar blob yang sama di C#, kita dapat menggunakan cuplikan kode berikut:

string containerName = "...";
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);

var blobs = container.GetBlobs();
foreach (var blob in blobs)
{
    Console.WriteLine($"{blob.Name} --> Created On: {blob.Properties.CreatedOn:YYYY-MM-dd HH:mm:ss}  Size: {blob.Properties.ContentLength}");
}

Atau di JavaScript:

const containerName = '...';
const containerClient = blobServiceClient.getContainerClient(containerName);

let blobs = containerClient.listBlobsFlat();
for await (const blob of blobs) {
  console.log(`${blob.name} --> Created: ${blob.properties.createdOn}   Size: ${blob.properties.contentLength}`);
}

Catatan

Pustaka klien hanyalah pembungkus tipis di sekitar REST API. Mereka melakukan persis apa yang akan Anda lakukan jika Anda menggunakan layanan web secara langsung. Pustaka ini juga berjenis sumber terbuka, yang membuatnya sangat transparan. Untuk tautan ke kode sumber pustaka ini di GitHub, lihat bagian Sumber Daya Tambahan di akhir modul ini.

Selanjutnya, mari kita tambahkan dukungan pustaka klien ke aplikasi Anda.