Mengelola properti kontainer dan metadata dengan TypeScript

Kontainer blob mendukung properti sistem dan metadata yang ditentukan pengguna, selain data yang dimuatnya. Artikel ini menunjukkan cara mengelola properti sistem dan metadata yang ditentukan pengguna dengan Pustaka klien Azure Storage untuk JavaScript.

Prasyarat

Tentang properti dan metadata

  • Properti sistem: Properti sistem ada di setiap sumber daya penyimpanan Blob. Beberapa dari mereka dapat dibaca atau diatur, sementara yang lain baca-saja. Di bawah sampul, beberapa properti sistem sesuai dengan header HTTP standar tertentu. Pustaka klien Azure Storage untuk JavaScript mengelola properti ini untuk Anda.

  • Metadata yang ditentukan pengguna: Metadata yang ditentukan pengguna terdiri dari satu atau beberapa pasangan nama-nilai yang Anda tentukan untuk sumber daya penyimpanan Blob. Anda dapat menggunakan metadata untuk menyimpan nilai tambahan dengan sumber daya. Nilai metadata hanya untuk tujuan Anda sendiri, dan tidak memengaruhi perilaku sumber daya.

    Pasangan nama/nilai metadata adalah header HTTP yang valid dan harus mematuhi semua batasan yang mengatur header HTTP. Untuk informasi selengkapnya tentang persyaratan penamaan metadata, lihat Nama metadata.

Mengambil properti kontainer

Untuk mengambil properti kontainer, buat objek ContainerClient lalu gunakan metode berikut:

Contoh kode berikut mengambil properti kontainer dan menulis nilai properti ke jendela konsol:

async function getContainerProperties(
  containerClient: ContainerClient
): Promise<void> {
  const properties: ContainerGetPropertiesResponse =
    await containerClient.getProperties();

  if (properties.errorCode) throw Error(properties.errorCode);

  console.log(containerClient.containerName + ' properties: ');

  for (const property in properties) {
    switch (property) {
      // nested properties are stringified
      case 'metadata':
        //case 'objectReplicationRules':
        console.log(`    ${property}: ${JSON.stringify(properties[property])}`);
        break;
      default:
        console.log(`    ${property}: ${properties[property]}`);
        break;
    }
  }
}
/* Example output: 
{
    "metadata": {
        "lastfilereview": "3/20/2023",
        "reviewer": "johnh"
    },
    "etag": "\"0x8DB295348CDCD54\"",
    "lastModified": "2023-03-20T14:56:28.000Z",
    "leaseState": "available",
    "leaseStatus": "unlocked",
    "clientRequestId": "0bc8c31a-c607-477e-9846-f2121b10297a",
    "requestId": "1e4ee737-b01e-0042-4e3c-5b2207000000",
    "version": "2021-12-02",
    "date": "2023-03-20T14:56:28.000Z",
    "blobPublicAccess": "container",
    "hasImmutabilityPolicy": false,
    "hasLegalHold": false,
    "defaultEncryptionScope": "$account-encryption-key",
    "denyEncryptionScopeOverride": false,
    "isImmutableStorageWithVersioningEnabled": false
}
*/

Atur dan ambil metadata

Anda dapat menentukan metadata sebagai satu atau beberapa sumber daya kontainer pasangan nama-nilai. Untuk mengatur metadata, buat objek ContainerClient lalu gunakan metode berikut:

Contoh kode berikut mengatur metadata pada kontainer.

/*
const metadata = {
  // values must be strings
  lastFileReview: currentDate.toString(),
  reviewer: `johnh`
}
*/
async function setContainerMetadata(
  containerClient: ContainerClient,
  metadata: Metadata
) {
  await containerClient.setMetadata(metadata);
}

Untuk mengambil metadata, dapatkan properti kontainer lalu gunakan properti metadata yang dikembalikan.

Sumber

Untuk mempelajari selengkapnya tentang mengatur dan mengambil properti kontainer dan metadata 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 mengatur dan mengambil properti dan metadata menggunakan operasi REST API berikut:

Metode ini getProperties mengambil properti kontainer dan metadata dengan memanggil operasi Dapatkan Properti Blob dan operasi Dapatkan Metadata Blob.

Sampel kode

Sumber daya pustaka klien