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.

In deze voorbeeldcodefragmenten ziet u hoe u het volgende kunt uitvoeren met de Azure Blob Storage-pakketbibliotheek voor JavaScript:

Aanvullende bronnen:

API-verwijzing | Broncode bibliotheek | Pakket (npm) | Monsters

Vereisten

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 of Blob storage architecture

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.

Het Node.js-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 package.json.

    npm init -y
    
  4. Open het project in Visual Studio Code:

    code .
    

Het npm-pakket voor blobopslag installeren

  1. Installeer het Azure Storage NPM-pakket:

    npm install @azure/storage-blob
    
  2. Installeer andere afhankelijkheden die in deze quickstart worden gebruikt:

    npm install uuid dotenv
    

JavaScript-bestand maken

Ga als volgt te werk vanuit de projectmap:

  1. Maak een nieuw bestand met de naam index.js.

  2. Kopieer de volgende code naar het bestand. Er wordt meer code toegevoegd terwijl u deze quickstart doorloopt.

    const { BlobServiceClient } = require('@azure/storage-blob');
    const { v1: uuidv1} = require('uuid');
    require('dotenv').config()
    
    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));
    

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. Voer de volgende stappen uit om de referenties van uw opslagaccount weer te geven:

  1. Meld u aan bij Azure Portal.

  2. Zoek uw opslagaccount.

  3. Selecteer toegangssleutels in het menuvenster van het opslagaccount onder Beveiliging en netwerken. Hier kunt u de accounttoegangssleutels en de volledige verbindingsreeks voor elke sleutel bekijken.

    Screenshot that shows where the access key settings are in the 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 verbindingsreeks te kopiëren. In de volgende sectie voegt u de waarde van de verbindingsreeks toe aan een omgevingsvariabele.

    Screenshot showing how to copy a connection string from the Azure portal

De opslagverbindingsreeks configureren

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

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

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

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.

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:

const AZURE_STORAGE_CONNECTION_STRING =
  process.env.AZURE_STORAGE_CONNECTION_STRING;

if (!AZURE_STORAGE_CONNECTION_STRING) {
  throw Error("Azure Storage Connection string not found");
}

Een container maken

  1. Verzin een naam voor de nieuwe container. 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.

  2. 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
    );
    

    Met de voorgaande code maakt u een exemplaar van de BlobServiceClient-klasse 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.

Blobs uploaden naar een container

Kopieer de volgende code naar het einde van de main functie om een tekenreeks te uploaden naar een blob:

// 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
);

Met de voorgaande code wordt een verwijzing naar een BlockBlobClient-object opgehaald door de methode getBlockBlobClient op de ContainerClient aan te roepen vanuit de sectie Een container maken . De code uploadt de tekenreeksgegevens naar de blob door de uploadmethode aan te roepen.

Blobs in een container vermelden

Voeg de volgende code toe aan het einde van de main functie om de blobs in de container weer te geven.

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

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

Met de voorgaande code wordt de methode listBlobsFlat aangeroepen. In dit geval is slechts één blob aan de container toegevoegd, zodat met de weergavebewerking alleen die ene blob wordt geretourneerd.

Blobs downloaden

  1. Voeg de volgende code toe aan het einde van de main functie om de eerder gemaakte blob te downloaden in de app-runtime.

    // 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 streamToText(downloadBlockBlobResponse.readableStreamBody)
    );
    

    Met de voorgaande code wordt de downloadmethode aangeroepen .

  2. Kopieer de volgende code na de main functie om een stream weer te converteren naar een tekenreeks.

    // Convert stream to text
    async function streamToText(readable) {
      readable.setEncoding('utf8');
      let data = '';
      for await (const chunk of readable) {
        data += chunk;
      }
      return data;
    }
    

Een container verwijderen

Voeg deze code toe aan het einde van de main functie om de container en alle bijbehorende blobs te verwijderen:

// Delete container
console.log("\nDeleting container...");

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

Met de voorgaande code worden de resources opgeschoond die de app heeft gemaakt door de hele container te verwijderen met behulp van de verwijdermethode . U kunt ook de lokale bestanden verwijderen als u dat wilt.

De code uitvoeren

  1. Voer vanuit een Visual Studio Code-terminal de app uit.

    node index.js
    
  2. 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.

De opslagemulator gebruiken

In deze quickstart hebt u een container en blob gemaakt in de Azure-cloud. U kunt ook het NPM-pakket voor Azure Blob Storage gebruiken om deze resources lokaal te maken in de Azure Storage-emulator voor ontwikkeling en testen.

Opschonen

  1. Wanneer u klaar bent met deze quickstart, verwijdert u de blob-quickstart-v12 map.
  2. Als u klaar bent met het gebruik van uw Azure Storage-resource, gebruikt u de Azure CLI om de Opslagresource te verwijderen.

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: