Delen via


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

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.

Http-headers voor blob instellen

In het volgende codevoorbeeld worden blob-HTTP-systeemeigenschappen ingesteld op een blob.

Als u de HTTP-eigenschappen voor een blob wilt instellen, maakt u een BlobClient en roept u vervolgens BlobClient.setHTTPHeaders aan. Controleer de blobHTTPHeaders-eigenschappen om te weten welke HTTP-eigenschappen u wilt instellen. Http-eigenschappen die niet expliciet zijn ingesteld, worden gewist.

/*
properties= {
      blobContentType: 'text/plain',
      blobContentLanguage: 'en-us',
      blobContentEncoding: 'utf-8',
      // all other http properties are cleared
    }
*/
async function setHTTPHeaders(blobClient, headers) {

  await blobClient.setHTTPHeaders(headers);

  console.log(`headers set successfully`);
}

Metagegevens instellen

U kunt metagegevens opgeven als een of meer naam-waardeparen op een blob of containerresource. Als u metagegevens wilt instellen, maakt u een BlobClient en verzendt u vervolgens een JSON-object met naam-waardeparen met

In het volgende codevoorbeeld worden metagegevens voor een blob ingesteld.

/*
metadata= {
    reviewedBy: 'Bob',
    releasedBy: 'Jill',
}
*/
async function setBlobMetadata(blobClient, metadata) {

  await blobClient.setMetadata(metadata);

  console.log(`metadata set successfully`);

}

Als u de metagegevens wilt lezen, haalt u de eigenschappen van de blob op (zie hieronder), die specifiek naar de metadata eigenschap verwijzen.

Blob-eigenschappen ophalen

In het volgende codevoorbeeld worden de systeemeigenschappen van een blob opgehaald, waaronder HTTP-headers en metagegevens, en worden deze waarden weergegeven.

async function getProperties(blobClient) {

  const properties = await blobClient.getProperties();
  console.log(blobClient.name + ' properties: ');

  for (const property in properties) {

    switch (property) {
      // nested properties are stringified and returned as strings
      case 'metadata':
      case 'objectReplicationRules':
        console.log(`    ${property}: ${JSON.stringify(properties[property])}`);
        break;
      default:
        console.log(`    ${property}: ${properties[property]}`);
        break;
    }
  }
}

De uitvoer voor deze console.log lijnen ziet er als volgt uit:

my-blob.txt properties:
    lastModified: Thu Apr 21 2022 13:02:53 GMT-0700 (Pacific Daylight Time)
    createdOn: Thu Apr 21 2022 13:02:53 GMT-0700 (Pacific Daylight Time)
    metadata: {"releasedby":"Jill","reviewedby":"Bob"}
    objectReplicationPolicyId: undefined
    objectReplicationRules: {}
    blobType: BlockBlob
    copyCompletedOn: undefined
    copyStatusDescription: undefined
    copyId: undefined
    copyProgress: undefined
    copySource: undefined
    copyStatus: undefined
    isIncrementalCopy: undefined
    destinationSnapshot: undefined
    leaseDuration: undefined
    leaseState: available
    leaseStatus: unlocked
    contentLength: 19
    contentType: text/plain
    etag: "0x8DA23D1EBA8E607"
    contentMD5: undefined
    contentEncoding: utf-8
    contentDisposition: undefined
    contentLanguage: en-us
    cacheControl: undefined
    blobSequenceNumber: undefined
    clientRequestId: 58da0441-7224-4837-9b4a-547f9a0c7143
    requestId: 26acb38a-001e-0046-27ba-55ef22000000
    version: 2021-04-10
    date: Thu Apr 21 2022 13:02:52 GMT-0700 (Pacific Daylight Time)
    acceptRanges: bytes
    blobCommittedBlockCount: undefined
    isServerEncrypted: true
    encryptionKeySha256: undefined
    encryptionScope: undefined
    accessTier: Hot
    accessTierInferred: true
    archiveStatus: undefined
    accessTierChangedOn: undefined
    versionId: undefined
    isCurrentVersion: undefined
    tagCount: undefined
    expiresOn: undefined
    isSealed: undefined
    rehydratePriority: undefined
    lastAccessed: undefined
    immutabilityPolicyExpiresOn: undefined
    immutabilityPolicyMode: undefined
    legalHold: undefined
    errorCode: undefined
    body: true
    _response: [object Object]
    objectReplicationDestinationPolicyId: undefined
    objectReplicationSourceProperties:

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.

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:

Codevoorbeelden

Clientbibliotheekbronnen