Containereigenschappen en metagegevens beheren met TypeScript
Blob-containers ondersteunen systeemeigenschappen en door de gebruiker gedefinieerde metagegevens, naast de gegevens die ze bevatten. In dit artikel wordt beschreven hoe u systeemeigenschappen en door de gebruiker gedefinieerde metagegevens beheert met de Azure Storage-clientbibliotheek voor JavaScript.
Vereisten
- In de voorbeelden in dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor JavaScript. Zie Aan de slag met Azure Blob Storage en TypeScript voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het importeren van modules en het maken van een geautoriseerd clientobject voor gebruik met gegevensbronnen.
- Het autorisatiemechanisme moet machtigingen hebben om te kunnen werken met containereigenschappen of metagegevens. Zie de autorisatierichtlijnen voor de volgende REST API-bewerkingen voor meer informatie:
Over eigenschappen en metagegevens
Systeemeigenschappen: Systeemeigenschappen bestaan op elke Blob Storage-resource. Sommige kunnen worden gelezen of ingesteld, terwijl andere alleen-lezen zijn. Onder de covers komen sommige systeemeigenschappen overeen met bepaalde standaard HTTP-headers. De Azure Storage-clientbibliotheek voor JavaScript onderhoudt deze eigenschappen voor u.
Door de gebruiker gedefinieerde metagegevens: door de gebruiker gedefinieerde metagegevens bestaan uit een of meer naam-waardeparen die u opgeeft voor een Blob Storage-resource. U kunt metagegevens gebruiken om extra waarden op te slaan met de resource. Metagegevenswaarden zijn alleen bedoeld voor uw eigen doeleinden en hebben geen invloed op het gedrag van de resource.
Naam/waardeparen van metagegevens zijn geldige HTTP-headers en moeten voldoen aan alle beperkingen voor HTTP-headers. Zie Namen van metagegevens voor meer informatie over naamgevingsvereisten voor metagegevens.
Containereigenschappen ophalen
Als u containereigenschappen wilt ophalen, maakt u een ContainerClient-object en gebruikt u vervolgens de volgende methode:
- ContainerClient.getProperties (retourneert ContainerProperties)
In het volgende codevoorbeeld worden de eigenschappen van een container opgehaald en worden de eigenschapswaarden naar een consolevenster geschreven:
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
}
*/
Metagegevens instellen en ophalen
U kunt metagegevens opgeven als een of meer naam-waardeparen containerresources. Als u metagegevens wilt instellen, maakt u een ContainerClient-object en gebruikt u vervolgens de volgende methode:
- ContainerClient.setMetadata
In het volgende codevoorbeeld worden metagegevens voor een container ingesteld.
/*
const metadata = {
// values must be strings
lastFileReview: currentDate.toString(),
reviewer: `johnh`
}
*/
async function setContainerMetadata(
containerClient: ContainerClient,
metadata: Metadata
) {
await containerClient.setMetadata(metadata);
}
Als u metagegevens wilt ophalen, haalt u de containereigenschappen op en gebruikt u vervolgens de geretourneerde metagegevenseigenschap .
Resources
Zie de volgende resources voor meer informatie over het instellen en ophalen van containereigenschappen en metagegevens met behulp van de Azure Blob Storage-clientbibliotheek voor JavaScript.
REST API-bewerkingen
De Azure SDK voor JavaScript bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende JavaScript-paradigma's. De clientbibliotheekmethoden voor het instellen en ophalen van eigenschappen en metagegevens gebruiken de volgende REST API-bewerkingen:
- Containereigenschappen ophalen (REST API)
- Containermetagegevens instellen (REST API)
- Containermetagegevens ophalen (REST API)
De getProperties
methode haalt containereigenschappen en metagegevens op door zowel de bewerking Blob-eigenschappen ophalen als de bewerking Blobmetagegevens ophalen aan te roepen.