Snabbstart: Hantera blobar med JavaScript v12 SDK i Node.js

I den här snabbstarten lär du dig att hantera blobar med hjälp av Node.js. Blobar är objekt som kan innehålla stora mängder text eller binära data, inklusive bilder, dokument, strömmande media och arkivdata. Du laddar upp, laddar ned och listar blobar och skapar och tar bort containrar.

Ytterligare resurser:

Förutsättningar

Inrätta

Det här avsnittet går igenom hur du förbereder ett projekt för att arbeta med Azure Blob Storage-klientbiblioteket v12 för JavaScript.

Skapa projektet

Skapa ett JavaScript-program med namnet blob-quickstart-v12.

  1. I ett konsolfönster (till exempel cmd, PowerShell eller Bash) skapar du en ny katalog för projektet.

    mkdir blob-quickstart-v12
    
  2. Växla till den nyligen skapade katalogen blob-quickstart-v12.

    cd blob-quickstart-v12
    
  3. Skapa en ny textfil med namnet package.json. Den här filen definierar Node.js projekt. Spara filen i katalogen blob-quickstart-v12. Här är innehållet i filen:

    {
        "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"
        }
    }
    

    Du kan ange ditt eget namn i author för fältet om du vill.

Installera paketet

När du fortfarande är i katalogen blob-quickstart-v12 installerar du Azure Blob Storage-klientbiblioteket för JavaScript-paketet med hjälp av npm install kommandot . Det här kommandot läser filen package.json och installerar Azure Blob Storage-klientbiblioteket v12 för JavaScript-paketet och alla bibliotek som det är beroende av.

npm install

Konfigurera appramverket

Från projektkatalogen:

  1. Öppna en ny textfil i kodredigeraren

  2. Lägga require till anrop för att läsa in Azure Node.js moduler

  3. Skapa strukturen för programmet, inklusive grundläggande undantagshantering

    Här är koden:

    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. Spara den nya filen blob-quickstart-v12.js i katalogen blob-quickstart-v12.

Kopiera dina autentiseringsuppgifter från Azure-portalen

När exempelprogrammet gör en begäran till Azure Storage måste det auktoriserats. Om du vill auktorisera en begäran lägger du till autentiseringsuppgifterna för ditt lagringskonto i programmet som en anslutningssträng. Följ dessa steg om du vill visa autentiseringsuppgifterna för ditt lagringskonto:

  1. Logga in på Azure-portalen.

  2. Leta rätt på ditt lagringskonto.

  3. I menyfönstret för lagringskontot går du till Säkerhet + nätverk och väljer Åtkomstnycklar. Här kan du visa kontoåtkomstnycklarna och den fullständiga anslutningssträngen för varje nyckel.

    Skärmbild som visar var inställningarna för åtkomstnyckeln finns i Azure Portal

  4. I fönstret Åtkomstnycklar väljer du Visa nycklar.

  5. Leta upp värdet för Anslutningssträng i avsnittet key1. Välj ikonen Kopiera till Urklipp för att kopiera anslutningssträngen. Du lägger till anslutningssträngens värde i en miljövariabel i nästa avsnitt.

    Skärmbild som visar hur man kopierar en anslutningssträng från Azure-portalen

Konfigurera anslutningssträngen för lagring

När du har kopierat anslutningssträngen skriver du den till en ny miljövariabel på den lokala dator som kör programmet. Konfigurera miljövariabeln genom att öppna ett konsolfönster och följa anvisningarna för ditt operativsystem. Ersätt <yourconnectionstring> med den faktiska anslutningssträngen.

Windows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

När du har lagt till miljövariabeln i Windows måste du starta en ny instans av kommandofönstret.

Linux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Starta om program

När du har lagt till miljövariabeln startar du om alla program som körs och behöver läsa miljövariabeln. Du kan till exempel starta om utvecklingsmiljön eller redigeringsredigeraren innan du fortsätter.

Objektmodell

Azure Blob Storage är optimerat för att lagra enorma mängder ostrukturerade data. Ostrukturerade data är data som inte följer en viss datamodell eller definition, till exempel text eller binära data. I blobblagringen finns tre typer av resurser:

  • Lagringskontot
  • En container på lagringskontot
  • En blob i containern

Följande diagram visar relationen mellan de här resurserna.

Diagram över blobblagringens arkitektur

Använd följande JavaScript-klasser för att interagera med dessa resurser:

  • BlobServiceClient:Med BlobServiceClient klassen kan du ändra Azure Storage och blobcontainrar.
  • ContainerClient:Med ContainerClient klassen kan du ändra Azure Storage och deras blobar.
  • BlobClient:Med BlobClient klassen kan du ändra Azure Storage blobar.

Kodexempel

De här exempelkodfragmenten visar hur du utför följande med Azure Blob Storage-klientbiblioteket för JavaScript:

Hämta anslutningssträngen

Koden nedan hämtar anslutningssträngen för lagringskontot från miljövariabeln som skapades i avsnittet Konfigurera lagringsanslutningssträngen.

Lägg till den här koden i main funktionen:

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

Skapa en container

Bestäm ett namn för den nya containern. Koden nedan lägger till ett UUID-värde i containernamnet för att säkerställa att det är unikt.

Viktigt

Containernamn måste använda gemener. Mer information om namngivning av containrar och blobar finns i Namngivning och referens av containrar, blobar och metadata.

Skapa en instans av klassen BlobServiceClient genom att anropa metoden fromConnectionString. Anropa sedan metoden getContainerClient för att hämta en referens till en container. Anropa slutligen skapa för att skapa containern i ditt lagringskonto.

Lägg till den här koden i slutet av main funktionen:

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

Upload blobar till en container

Följande kodfragment:

  1. Skapar en textsträng som ska laddas upp till en blob.
  2. Hämtar en referens till ett BlockBlobClient-objekt genom att anropa metoden getBlockBlobClient i ContainerClient från avsnittet Skapa en container.
  3. Laddar upp textsträngsdata till bloben genom att anropa uppladdningsmetoden.

Lägg till den här koden i slutet av main funktionen:

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

Visa blobar i en container

Visa en lista över blobarna i containern genom att anropa metoden listBlobsFlat. I det här fallet har endast en blob lagts till i containern, så liståtgärden returnerar bara den bloben.

Lägg till den här koden i slutet av main funktionen:

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

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

Ladda ned blobbar

Ladda ned bloben som du skapade tidigare genom att anropa nedladdningsmetoden. Exempelkoden innehåller en hjälpfunktion med namnet , som används för att läsa en streamToString Node.js dataström till en sträng.

Lägg till den här koden i slutet av main funktionen:

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

Lägg till den här hjälpfunktionen efter main funktionen:

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

Ta bort en container

Följande kod rensar resurserna som appen skapade genom att ta bort hela containern med hjälp av delete-metoden. Du kan också ta bort de lokala filerna om du vill.

Lägg till den här koden i slutet av main funktionen:

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

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

Kör koden

Den här appen skapar en textsträng och laddar upp den till Blob Storage. Exemplet visar sedan blobarna i containern, laddar ned bloben och visar nedladdade data.

Från en konsoluppfråga navigerar du till katalogen somblob-quickstart-v12.js filen och kör sedan följande kommando för att node köra appen.

node blob-quickstart-v12.js

Appens utdata liknar följande exempel:

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

Gå igenom koden i felsökningsprogrammet och kontrollera Azure Portal under hela processen. Kontrollera att containern skapas. Du kan öppna bloben i containern och visa innehållet.

Nästa steg

I den här snabbstarten har du lärt dig hur du laddar upp, laddar ned och listar blobar med JavaScript.

Självstudier, exempel, snabbstarter och annan dokumentation finns här: