Blob-eigenschappen en -metagegevens beheren met JavaScript
Naast de gegevens die ze bevatten, ondersteunen blobs systeemeigenschappen en door de gebruiker gedefinieerde metagegevens. 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 JavaScript 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 blobeigenschappen of metagegevens. Zie de autorisatierichtlijnen voor de volgende REST API-bewerkingen voor meer informatie:
- Blobeigenschappen instellen
- Get Blob Properties (Blob-eigenschappen ophalen)
- Blobmetagegevens instellen
- Blobmetagegevens ophalen
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.
Notitie
Blob-indextags bieden ook de mogelijkheid om willekeurige door de gebruiker gedefinieerde sleutel-/waardekenmerken op te slaan naast een Azure Blob Storage-resource. Hoewel dit vergelijkbaar is met metagegevens, worden alleen blob-indextags automatisch geïndexeerd en doorzoekbaar gemaakt door de systeemeigen blobservice. Metagegevens kunnen niet worden geïndexeerd en opgevraagd, tenzij u een afzonderlijke service zoals Azure Search gebruikt.
Zie Gegevens in Azure Blob Storage beheren en zoeken met blobindex (preview) voor meer informatie over deze functie.
Eigenschappen instellen en ophalen
Als u eigenschappen voor een blob wilt instellen, gebruikt u de volgende methode:
In het volgende codevoorbeeld worden de blobContentType
en blobContentLanguage
systeemeigenschappen voor een blob ingesteld.
Alle eigenschappen die niet expliciet zijn ingesteld, worden gewist. In het volgende codevoorbeeld worden eerst de bestaande eigenschappen op de blob opgehaald en vervolgens gebruikt om de headers te vullen die niet worden bijgewerkt.
async function setHTTPHeaders(blobClient, headers) {
// Get existing properties
const properties = await blobClient.getProperties();
// Set the blobContentType and blobContentLanguage headers
// Populate the remaining headers from the existing properties
blobHeaders = {
blobContentType: 'text/plain',
blobContentLanguage: 'en-us',
blobContentEncoding: properties.contentEncoding,
blobCacheControl: properties.cacheControl,
blobContentDisposition: properties.contentDisposition,
blobContentMD5: properties.contentMD5
},
await blobClient.setHTTPHeaders(blobHeaders);
}
Gebruik de volgende methode om eigenschappen op een blob op te halen:
In het volgende codevoorbeeld worden de systeemeigenschappen van een blob opgehaald en worden enkele van de waarden weergegeven:
async function getProperties(blobClient) {
const properties = await blobClient.getProperties();
console.log(`blobType: ${properties.blobType}`);
console.log(`contentType: ${properties.contentType}`);
console.log(`contentLength: ${properties.contentLength}`);
console.log(`lastModified: ${properties.lastModified}`);
}
Metagegevens instellen en ophalen
U kunt metagegevens opgeven als een of meer naam-waardeparen op een blob of containerresource. Als u metagegevens wilt instellen, verzendt u een metagegevensobject met naam-waardeparen met behulp van de volgende methode:
In het volgende codevoorbeeld worden metagegevens voor een blob ingesteld:
async function setBlobMetadata(blobClient, metadata) {
metadata = {
docType: 'text',
category: 'reference'
};
await blobClient.setMetadata(metadata);
}
Als u metagegevens wilt ophalen, roept u de methode getProperties in uw blob aan om de metagegevensverzameling te vullen en leest u vervolgens de waarden uit de eigenschap metagegevens . De getProperties
methode haalt blobeigenschappen en metagegevens op door zowel de Get Blob Properties
bewerking als de Get Blob Metadata
bewerking aan te roepen.
Resources
Zie de volgende bronnen voor meer informatie over het beheren van systeemeigenschappen en door de gebruiker gedefinieerde metagegevens met behulp van de Azure Blob Storage-clientbibliotheek voor JavaScript.
Codevoorbeelden
- Voorbeelden van JavaScript- en TypeScript-code weergeven uit dit artikel (GitHub)
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 beheren van systeemeigenschappen en door de gebruiker gedefinieerde metagegevens maken gebruik van de volgende REST API-bewerkingen:
- Blobeigenschappen instellen (REST API)
- Blobeigenschappen ophalen (REST API)
- Blobmetagegevens instellen (REST API)
- Blobmetagegevens ophalen (REST API)
Clientbibliotheekbronnen
Gerelateerde inhoud
- Dit artikel maakt deel uit van de ontwikkelaarshandleiding voor Blob Storage voor JavaScript/TypeScript. Zie de volledige lijst met artikelen over ontwikkelaarshandleidingen in Uw JavaScript-/TypeScript-app bouwen voor meer informatie.