Rychlý start: Správa objektů blob pomocí sady JavaScript v12 SDK v Node.js

V tomto rychlém startu se naučíte spravovat objekty blob pomocí Node.js. Objekty blob jsou objekty, které mohou obsahovat velké objemy textových nebo binárních dat, včetně obrázků, dokumentů, streamovaných médií a archivních dat. Budete nahrávat, stahovat a vy listovat objekty blob a vytvářet a odstraňovat kontejnery.

Další prostředky:

Požadavky

Nastavení

Tato část vás provede přípravou projektu pro práci s klientskou knihovnou Azure Blob Storage v12 pro JavaScript.

Vytvoření projektu

Vytvořte javascriptovou aplikaci s názvem blob-quickstart-v12.

  1. V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte nový adresář pro projekt.

    mkdir blob-quickstart-v12
    
  2. Přepněte do nově vytvořeného adresáře blob-quickstart-v12.

    cd blob-quickstart-v12
    
  3. Vytvořte nový textový soubor s názvem package.json. Tento soubor definuje Node.js projektu. Uložte tento soubor do adresáře blob-quickstart-v12. Zde je obsah souboru:

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

    Pokud chcete, můžete do pole dejte vlastní author název.

Instalace balíčku

V adresáři blob-quickstart-v12 nainstalujte pomocí příkazu klientskou knihovnu Azure Blob Storage pro balíček npm install JavaScriptu. Tento příkaz přečte soubor package.json a nainstaluje balíček klientské knihovny Azure Blob Storage v12 pro JavaScript a všechny knihovny, na kterých závisí.

npm install

Nastavení architektury aplikace

Z adresáře projektu:

  1. Otevření dalšího nového textového souboru v editoru kódu

  2. Přidání require volání pro načtení Azure a Node.js modulů

  3. Vytvoření struktury pro program, včetně základního zpracování výjimek

    Tady je kód:

    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. Uložte nový soubor jakoblob-quickstart-v12.js v adresáři blob-quickstart-v12.

Zkopírování přihlašovacích údajů z webu Azure Portal

Když ukázková aplikace vytvoří požadavek na Azure Storage, musí být autorizována. Pokud chcete požadavek autorizovat, přidejte do aplikace přihlašovací údaje svého účtu úložiště jako připojovací řetězec. Pokud chcete zobrazit přihlašovací údaje účtu úložiště, postupujte takto:

  1. Přihlaste se k webu Azure Portal.

  2. Vyhledejte svůj účet úložiště.

  3. V podokně nabídek účtu úložiště v části Zabezpečení a sítě vyberte Přístupové klíče. Tady můžete zobrazit přístupové klíče účtu a úplný připojovací řetězec pro každý klíč.

    Snímek obrazovky znázorňuje, kde se nachází nastavení přístupového klíče v Azure Portal

  4. V podokně Přístupové klíče vyberte Zobrazit klíče.

  5. V části key1 vyhledejte hodnotu Připojovací řetězec. Vyberte ikonu Zkopírovat do schránky a zkopírujte připojovací řetězec. Hodnotu připojovacího řetězce přidáte do proměnné prostředí v další části.

    Snímek obrazovky ukazující zkopírování připojovacího řetězce z webu Azure Portal

Konfigurace připojovacího řetězce úložiště

Po zkopírování připojovacího řetězce ho zapište do nové proměnné prostředí na místním počítači, na který běží aplikace. Proměnnou prostředí nastavíte tak, že otevřete okno konzoly a budete postupovat podle pokynů pro váš operační systém. Nahraďte <yourconnectionstring> skutečným připojovacím řetězcem.

Windows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Po přidání proměnné prostředí v Windows, je nutné spustit novou instanci příkazového okna.

Linux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Restartování programů

Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou muset proměnnou prostředí přečíst. Před pokračováním například restartujte vývojové prostředí nebo editor.

Objektový model

Azure Blob Storage je optimalizované pro ukládání velkých objemů nestrukturovaných dat. Jde o data, která nevyhovují konkrétnímu datovému modelu nebo definici, například textová nebo binární data. Úložiště objektů blob nabízí tři typy prostředků:

  • Účet úložiště
  • Kontejner v účtu úložiště
  • Objekt blob v kontejneru

Na následujícím diagramu jsou vztahy těchto prostředků.

Diagram architektury úložiště objektů blob

K interakci s těmito prostředky použijte následující třídy JavaScriptu:

  • BlobServiceClient:Třída BlobServiceClient umožňuje manipulovat s Azure Storage a kontejnery objektů blob.
  • ContainerClient:Třída ContainerClient umožňuje manipulovat s kontejnery Azure Storage jejich objekty blob.
  • BlobClient:Třída BlobClient umožňuje manipulovat s Azure Storage objekty blob.

Příklady kódu

Tyto příklady fragmentů kódu ukazují, jak pomocí klientské knihovny Azure Blob Storage pro JavaScript provádět následující akce:

Získání připojovacího řetězce

Následující kód načte připojovací řetězec pro účet úložiště z proměnné prostředí vytvořené v části Konfigurace připojovacího řetězce úložiště.

Do funkce přidejte main tento kód:

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

Vytvoření kontejneru

Rozhodněte se o názvu nového kontejneru. Následující kód připojí k názvu kontejneru hodnotu UUID, aby se zajistilo, že bude jedinečný.

Důležité

Názvy kontejnerů musí být malými písmeny. Další informace o pojmenování kontejnerů a objektů blob najdete v tématu Názvy kontejnerů, objektů blob a metadat a odkazování na ně.

Vytvořte instanci třídy BlobServiceClient voláním metody fromConnectionString. Potom zavolejte metodu getContainerClient a získejte odkaz na kontejner. Nakonec zavolejte create, aby se kontejner ve vašem účtu úložiště skutečně vytvořil.

Na konec funkce přidejte main tento kód:

// 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 objektů blob do kontejneru

Následující fragment kódu:

  1. Vytvoří textový řetězec pro nahrání do objektu blob.
  2. Získá odkaz na objekt BlockBlobClient voláním metody getBlockBlobClient pro ContainerClient z části Vytvoření kontejneru.
  3. Nahraje data textového řetězce do objektu blob voláním metody upload.

Na konec funkce přidejte main tento kód:

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

Seznam objektů blob v kontejneru

Vypište objekty blob v kontejneru voláním metody listBlobsFlat. V tomto případě se do kontejneru přidal pouze jeden objekt blob, takže operace výpisu vrátí pouze tento jeden objekt blob.

Na konec funkce přidejte main tento kód:

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

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

Stáhnout objekty blob

Stáhněte dříve vytvořený objekt blob voláním metody download. Příklad kódu obsahuje pomocnou funkci s názvem , která se používá ke čtení streamToString Node.js čitelného datového proudu do řetězce.

Na konec funkce přidejte main tento kód:

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

Za funkci přidejte tuto pomocou main funkci:

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

Odstranění kontejneru

Následující kód vyčistí prostředky vytvořené aplikací odebráním celého kontejneru pomocí metody delete. Pokud chcete, můžete také odstranit místní soubory.

Na konec funkce přidejte main tento kód:

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

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

Spuštění kódu

Tato aplikace vytvoří textový řetězec a nahraje ho do úložiště objektů blob. Příklad pak vypíše objekty blob v kontejneru, stáhne objekt blob a zobrazí stažená data.

Z příkazového řádku konzoly přejděte do adresáře obsahujícího souborblob-quickstart-v12.js a spusťte aplikaci node spuštěním následujícího příkazu.

node blob-quickstart-v12.js

Výstup aplikace je podobný následujícímu příkladu:

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

Krokování kódu v ladicím programu a kontrola Azure Portal procesu. Zkontrolujte, že se kontejner vytváří. Objekt blob můžete otevřít uvnitř kontejneru a zobrazit jeho obsah.

Další kroky

V tomto rychlém startu jste zjistili, jak nahrávat, stahovat a vypisovat objekty BLOB pomocí JavaScriptu.

Výukové programy, ukázky, rychlé starty a další dokumentaci najdete na webu: