Quickstart: Blobs beheren met JavaScript v12 SDK in Node.js

In deze quickstart leert u hoe u blobs beheert met behulp van Node.js. Blobs zijn objecten die grote hoeveelheden tekst of binaire gegevens kunnen bevatten, zoals afbeeldingen, documenten, streaming media en archiefgegevens. U kunt blob, downloaden uploaden en weergeven en u kunt containers maken en verwijderen.

Aanvullende bronnen:

Vereisten

Instellen

In dit gedeelte wordt uitgelegd hoe u een project voorbereidt voor gebruik met de Azure Blob Storage-clientbibliotheek v12 voor JavaScript.

Het project maken

Maak een JavaScript-toepassing met de naam blob-quickstart-v12.

  1. Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor het project.

    mkdir blob-quickstart-v12
    
  2. Schakel over naar de zojuist gemaakte map blob-quickstart-v12.

    cd blob-quickstart-v12
    
  3. Maak een nieuw tekstbestand met de naam package.json. Dit bestand definieert het Node.js-project. Sla dit bestand op in de map blob-quickstart-v12. Hier is de inhoud van het bestand:

    {
        "name": "blob-quickstart-v12",
        "version": "1.0.0",
        "description": "Use the @azure/storage-blob SDK version 12 to interact with Azure Blob storage",
        "main": "blob-quickstart-v12.js",
        "scripts": {
            "start": "node blob-quickstart-v12.js"
        },
        "author": "Your Name",
        "license": "MIT",
        "dependencies": {
            "@azure/storage-blob": "^12.0.0",
            "@types/dotenv": "^4.0.3",
            "dotenv": "^6.0.0"
        }
    }
    

    U kunt desgewenst uw eigen naam invoeren in het veld author.

Het pakket installeren

Blijf in de map blob-quickstart-v12 en installeer de Azure Blob Storage-clientbibliotheek voor het JavaScript-pakket met behulp van de opdracht npm install. Met deze opdracht wordt het bestand package.json gelezen en het pakket Azure Blob Storage-clientbibliotheek v12 voor JavaScript geïnstalleerd, evenals alle bibliotheken waarvan het afhankelijk is.

npm install

Het app-framework instellen

Ga als volgt te werk vanuit de projectmap:

  1. Open nog een nieuw tekstbestand in uw code-editor

  2. Voeg require-aanroepen toe om Azure- en Node.js-modules te laden

  3. Maak de structuur voor het programma, waaronder eenvoudige afhandeling van uitzonderingen

    Hier volgt de code:

    const { BlobServiceClient } = require('@azure/storage-blob');
    const { v1: uuidv1} = require('uuid');
    
    async function main() {
        console.log('Azure Blob storage v12 - JavaScript quickstart sample');
        // Quick start code goes here
    }
    
    main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));
    
  4. Sla het nieuwe bestand op als blob-quickstart-v12.js in de map blob-quickstart-v12.

Kopieer uw referenties van de Azure Portal

Wanneer met de voorbeeldtoepassing een aanvraag wordt ingediend bij Azure Storage, moet deze aanvraag worden geautoriseerd. Om een aanvraag te autoriseren voegt u de referenties van uw opslagaccount toe als een verbindingsreeks. Volg deze stappen om uw opslagaccountreferenties te bekijken:

  1. Meld u aan bij Azure Portal.

  2. Zoek uw opslagaccount.

  3. Selecteer in het menudeelvenster van het opslagaccount onder Beveiliging en netwerken de optie Toegangssleutels. Hier kunt u de toegangssleutels voor het account en de volledige connection string voor elke sleutel weergeven.

    Schermopname die laat zien waar de instellingen voor de toegangssleutel zich in de Azure Portal

  4. Selecteer sleutels weergeven in het deelvenster Toegangssleutels.

  5. Zoek in de sectie key1 de waarde van de verbindingsreeks. Selecteer het pictogram Kopiëren naar klembord om de connection string. In de volgende sectie voegt connection string waarde toe aan een omgevingsvariabele.

    Schermopname waarin een verbindingsreeks vanuit de Azure-portal wordt gekopieerd

De opslagverbindingsreeks configureren

Nadat u de connection string, schrijft u deze naar een nieuwe omgevingsvariabele op de lokale computer met de toepassing. Als u de omgevingsvariabele wilt instellen, opent u een consolevenster en volgt u de aanwijzingen voor uw besturingssysteem. Vervang <yourconnectionstring> door de feitelijke verbindingsreeks.

Windows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Nadat u de omgevingsvariabele in Windows hebt toegevoegd, moet u een nieuw exemplaar van het opdrachtvenster starten.

Linux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Programma's opnieuw opstarten

Nadat u de omgevingsvariabele hebt toegevoegd, start u actieve programma's die de omgevingsvariabele moeten lezen, opnieuw. Start bijvoorbeeld uw ontwikkelomgeving of editor opnieuw op voordat u doorgaat.

Objectmodel

Azure Blob Storage is geoptimaliseerd voor het opslaan van grote hoeveelheden ongestructureerde gegevens. Ongestructureerde gegevens zijn gegevens die niet voldoen aan een bepaald gegevensmodel of bepaalde definitie, zoals tekst of binaire gegevens. Er zijn drie typen resources voor blobopslag:

  • Het opslagaccount
  • Een container in het opslagaccount
  • Een blob in de container

Het volgende diagram geeft de relatie tussen deze resources weer.

Diagram van de blobopslagarchitectuur

Gebruik de volgende JavaScript-klassen om te communiceren met deze resources:

  • BlobServiceClient: Met de klasse BlobServiceClient kunt u Azure Storage-resources en blob-containers bewerken.
  • ContainerClient: Met de klasse ContainerClient kunt u Azure Storage-containers en de bijbehorende blobs bewerken.
  • BlobClient: Met de klasse BlobClient kunt u Azure Storage-blobs bewerken.

Codevoorbeelden

Deze voorbeeldcodefragmenten laten zien hoe u de volgende acties kunt uitvoeren met de Azure Blob Storage-clientbibliotheek voor JavaScript:

De verbindingsreeks ophalen

De onderstaande code haalt de verbindingstekenreeks voor het opslagaccount op van de omgevingsvariabele die is gemaakt in de sectie De opslagverbindingsreeks configureren.

Voeg deze code toe in de functie main:

// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the
// environment variable is created after the application is launched in a
// console or with Visual Studio, the shell or application needs to be closed
// and reloaded to take the environment variable into account.
const AZURE_STORAGE_CONNECTION_STRING = process.env.AZURE_STORAGE_CONNECTION_STRING;

Een container maken

Verzin een naam voor de nieuwe container. Met de onderstaande code wordt een UUID-waarde aan de containernaam toegevoegd om te verzekeren dat deze uniek is.

Belangrijk

Containernamen moeten uit kleine letters bestaan. Zie Containers, blobs en metagegevens een naam geven en hiernaar verwijderen voor meer informatie over de naamgeving van containers en blobs.

Maak een exemplaar van de klasse BlobServiceClient door de methode fromConnectionString aan te roepen. Roep vervolgens de methode getContainerClient aan om een verwijzing naar een container te krijgen. Roep tot slot create aan om de container in uw opslagaccount te maken.

Voeg deze code toe aan het einde van de functie main:

// Create the BlobServiceClient object which will be used to create a container client
const blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);

// Create a unique name for the container
const containerName = 'quickstart' + uuidv1();

console.log('\nCreating container...');
console.log('\t', containerName);

// Get a reference to a container
const containerClient = blobServiceClient.getContainerClient(containerName);

// Create the container
const createContainerResponse = await containerClient.create();
console.log("Container was created successfully. requestId: ", createContainerResponse.requestId);

Blobs uploaden naar een container

Het volgende codefragment:

  1. Hiermee wordt een tekenreeks gemaakt om naar een blob te uploaden.
  2. Hiermee wordt een verwijzing naar een BlockBlobClient-object opgehaald door de methode getBlockBlobClient aan te roepen voor de ContainerClient vanuit de sectie Een container maken.
  3. Hiermee worden de tekenreeksgegevens geüpload naar de blob door de methode upload aan te roepen.

Voeg deze code toe aan het einde van de functie main:

// Create a unique name for the blob
const blobName = 'quickstart' + uuidv1() + '.txt';

// Get a block blob client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);

console.log('\nUploading to Azure storage as blob:\n\t', blobName);

// Upload data to the blob
const data = 'Hello, World!';
const uploadBlobResponse = await blockBlobClient.upload(data, data.length);
console.log("Blob was uploaded successfully. requestId: ", uploadBlobResponse.requestId);

De blobs in een container in een lijst weergeven

Geef de blobs in de container weer door de methode listBlobsFlat aan te roepen. In dit geval is slechts één blob aan de container toegevoegd, zodat met de weergavebewerking alleen die ene blob wordt geretourneerd.

Voeg deze code toe aan het einde van de functie main:

console.log('\nListing blobs...');

// List the blob(s) in the container.
for await (const blob of containerClient.listBlobsFlat()) {
    console.log('\t', blob.name);
}

Blobs downloaden

Download de eerder gemaakte blob door de methode download aan te roepen. De voorbeeldcode bevat een Help-functie genaamd streamToString, die wordt gebruikt om een leesbare Node.js-stream te lezen naar een tekenreeks.

Voeg deze code toe aan het einde van de functie main:

// Get blob content from position 0 to the end
// In Node.js, get downloaded data by accessing downloadBlockBlobResponse.readableStreamBody
// In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody
const downloadBlockBlobResponse = await blockBlobClient.download(0);
console.log('\nDownloaded blob content...');
console.log('\t', await streamToString(downloadBlockBlobResponse.readableStreamBody));

Voeg deze Help-functie toe na de functie main:

// A helper function used to read a Node.js readable stream into a string
async function streamToString(readableStream) {
  return new Promise((resolve, reject) => {
    const chunks = [];
    readableStream.on("data", (data) => {
      chunks.push(data.toString());
    });
    readableStream.on("end", () => {
      resolve(chunks.join(""));
    });
    readableStream.on("error", reject);
  });
}

Een container verwijderen

De volgende code ruimt de resources die door de app zijn gemaakt op door de hele container te verwijderen met behulp van de methode delete. U kunt ook de lokale bestanden verwijderen als u dat wilt.

Voeg deze code toe aan het einde van de functie main:

console.log('\nDeleting container...');

// Delete container
const deleteContainerResponse = await containerClient.delete();
console.log("Container was deleted successfully. requestId: ", deleteContainerResponse.requestId);

De code uitvoeren

Met deze app wordt een tekenreeks gemaakt en naar Blob Storage geüpload. Vervolgens wordt een lijst gemaakt van de blob(s) in de container, wordt de blob gedownload en worden de gedownloade gegevens weergegeven.

Navigeer vanuit een consoleprompt naar de map met het blob-quickstart-v12.js bestand en voer vervolgens de volgende opdracht node uit om de app uit te voeren.

node blob-quickstart-v12.js

De uitvoer van de app lijkt op die in het volgende voorbeeld:

Azure Blob storage v12 - JavaScript quickstart sample

Creating container...
         quickstart4a0780c0-fb72-11e9-b7b9-b387d3c488da

Uploading to Azure Storage as blob:
         quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt

Listing blobs...
         quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt

Downloaded blob content...
         Hello, World!

Deleting container...
Done

Neem de code in uw foutopsporingsprogramma door en controleer uw Azure-portal gedurende de hele procedure. Kijk of de container wordt gemaakt. U kunt de blob in de container openen en de inhoud bekijken.

Volgende stappen

In deze quickstart hebt u geleerd hoe u blobs kunt uploaden, kunt downloaden en er een lijst van kunt maken met behulp van JavaScript.

Voor zelfstudies, voorbeelden, quickstarts en andere documentatie gaat u naar: