Rychlý Start: Správa objektů BLOB pomocí sady JavaScript V12 SDK v Node.jsQuickstart: Manage blobs with JavaScript v12 SDK in Node.js

V tomto rychlém startu se naučíte spravovat objekty BLOB pomocí Node.js.In this quickstart, you learn to manage blobs by using Node.js. Objekty blob jsou objekty, které mohou obsahovat velké objemy textových nebo binárních dat, včetně obrázků, dokumentů, datových proudů médií a dat archivu.Blobs are objects that can hold large amounts of text or binary data, including images, documents, streaming media, and archive data. Můžete nahrávat, stahovat a vypisovat objekty BLOB a vytvářet a odstraňovat kontejnery.You'll upload, download, and list blobs, and you'll create and delete containers.

Další prostředky:Additional resources:

PožadavkyPrerequisites

Poznámka

Funkce popsané v tomto článku jsou nyní k dispozici pro účty, které mají hierarchický obor názvů.The features described in this article are now available to accounts that have a hierarchical namespace. Chcete-li zkontrolovat omezení, přečtěte si téma funkce služby Blob Storage dostupné v Azure Data Lake Storage Gen2 článku.To review limitations, see the Blob storage features available in Azure Data Lake Storage Gen2 article.

NastaveníSetting up

Tato část vás provede přípravou projektu pro práci s klientskou knihovnou služby Azure Blob Storage V12 pro JavaScript.This section walks you through preparing a project to work with the Azure Blob storage client library v12 for JavaScript.

Vytvoření projektuCreate the project

Vytvořte aplikaci JavaScriptu s názvem BLOB-Start-V12.Create a JavaScript application named blob-quickstart-v12.

  1. V okně konzoly (například cmd, PowerShell nebo bash) vytvořte nový adresář pro projekt.In a console window (such as cmd, PowerShell, or Bash), create a new directory for the project.

    mkdir blob-quickstart-v12
    
  2. Přepněte do nově vytvořeného adresáře pro rychlý Start objektů BLOB-V12 .Switch to the newly created blob-quickstart-v12 directory.

    cd blob-quickstart-v12
    
  3. Vytvořte nový textový soubor s názvem package.jsv.Create a new text file called package.json. Tento soubor definuje projekt Node.js.This file defines the Node.js project. Uložte tento soubor v adresáři objektů BLOB-rychlý Start-V12 .Save this file in the blob-quickstart-v12 directory. Tady je obsah souboru:Here is the contents of the file:

    {
        "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 umístit vlastní název author .You can put your own name in for the author field, if you'd like.

Instalace balíčkuInstall the package

Ještě pořád v adresáři objektů BLOB – rychlý Start – V12 nainstalujte knihovnu klienta Azure Blob Storage pro balíček JavaScriptu pomocí npm install příkazu.While still in the blob-quickstart-v12 directory, install the Azure Blob storage client library for JavaScript package by using the npm install command. Tento příkaz přečte package.jsv souboru a nainstaluje balíček klientské knihovny Azure Blob Storage V12 for JavaScript a všechny knihovny, na kterých závisí.This command reads the package.json file and installs the Azure Blob storage client library v12 for JavaScript package and all the libraries on which it depends.

npm install

Nastavení aplikační architekturySet up the app framework

Z adresáře projektu:From the project directory:

  1. Otevřít další nový textový soubor v editoru kóduOpen another new text file in your code editor

  2. Přidání require volání pro načtení modulů Azure a Node.jsAdd require calls to load Azure and Node.js modules

  3. Vytvoření struktury pro program, včetně základního zpracování výjimekCreate the structure for the program, including basic exception handling

    Zde je kód:Here's the code:

    const { BlobServiceClient } = require('@azure/storage-blob');
    const { v1: uuid} = 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 jako blob-quickstart-v12.js v adresáři objektů BLOB-rychlý Start-V12 .Save the new file as blob-quickstart-v12.js in the blob-quickstart-v12 directory.

Zkopírování přihlašovacích údajů z webu Azure PortalCopy your credentials from the Azure portal

Když ukázková aplikace odešle požadavek na Azure Storage, musí být ověřena.When the sample application makes a request to Azure Storage, it must be authorized. K autorizaci žádosti přidejte do aplikace přihlašovací údaje účtu úložiště jako připojovací řetězec.To authorize a request, add your storage account credentials to the application as a connection string. Přihlašovací údaje účtu úložiště zobrazíte pomocí následujícího postupu:View your storage account credentials by following these steps:

  1. Přihlaste se k portálu Azure Portal.Sign in to the Azure portal.

  2. Vyhledejte svůj účet úložiště.Locate your storage account.

  3. V části Nastavení v přehledu účtu úložiště vyberte Přístupové klíče.In the Settings section of the storage account overview, select Access keys. Tady se zobrazí přístupové klíče vašeho účtu a úplný připojovací řetězec pro jednotlivé klíče.Here, you can view your account access keys and the complete connection string for each key.

  4. V části key1 vyhledejte hodnotu Připojovací řetězec a výběrem tlačítka Kopírovat zkopírujte připojovací řetězec.Find the Connection string value under key1, and select the Copy button to copy the connection string. V dalším kroku přidáte hodnotu připojovacího řetězce do proměnné prostředí.You will add the connection string value to an environment variable in the next step.

    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ěConfigure your storage connection string

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ém aplikaci spouštíte.After you have copied your connection string, write it to a new environment variable on the local machine running the application. Proměnnou prostředí nastavíte tak, že otevřete okno konzoly a budete postupovat podle pokynů pro váš operační systém.To set the environment variable, open a console window, and follow the instructions for your operating system. Nahraďte <yourconnectionstring> skutečným připojovacím řetězcem.Replace <yourconnectionstring> with your actual connection string.

WindowsWindows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Po přidání proměnné prostředí v systému Windows je nutné spustit novou instanci příkazového okna.After you add the environment variable in Windows, you must start a new instance of the command window.

LinuxLinux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOSmacOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Restartovat programyRestart programs

Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou muset číst proměnnou prostředí.After you add the environment variable, restart any running programs that will need to read the environment variable. Před pokračováním například restartujte vývojové prostředí nebo editor.For example, restart your development environment or editor before continuing.

Objektový modelObject model

Úložiště objektů BLOB v Azure je optimalizované pro ukládání obrovských objemů nestrukturovaných dat.Azure Blob storage is optimized for storing massive amounts of unstructured data. Jde o data, která nevyhovují konkrétnímu datovému modelu nebo definici, například textová nebo binární data.Unstructured data is data that does not adhere to a particular data model or definition, such as text or binary data. Úložiště objektů BLOB nabízí tři typy prostředků:Blob storage offers three types of resources:

  • Účet úložištěThe storage account
  • Kontejner v účtu úložištěA container in the storage account
  • Objekt BLOB v kontejneruA blob in the container

Na následujícím diagramu jsou vztahy těchto prostředků.The following diagram shows the relationship between these resources.

Diagram architektury služby Blob Storage

Pro interakci s těmito prostředky použijte následující třídy JavaScriptu:Use the following JavaScript classes to interact with these resources:

  • BlobServiceClient: BlobServiceClient Třída umožňuje manipulovat s Azure Storage prostředky a kontejnery objektů BLOB.BlobServiceClient: The BlobServiceClient class allows you to manipulate Azure Storage resources and blob containers.
  • ContainerClient: ContainerClient Třída umožňuje manipulovat s kontejnery Azure Storage a jejich objekty blob.ContainerClient: The ContainerClient class allows you to manipulate Azure Storage containers and their blobs.
  • BlobClient: BlobClient Třída umožňuje manipulovat s objekty blob Azure Storage.BlobClient: The BlobClient class allows you to manipulate Azure Storage blobs.

Příklady kóduCode examples

Tyto ukázkové fragmenty kódu ukazují, jak provést následující akce s klientskou knihovnou služby Azure Blob Storage pro JavaScript:These example code snippets show you how to perform the following with the Azure Blob storage client library for JavaScript:

Získání připojovacího řetězceGet the connection string

Následující kód načte připojovací řetězec pro účet úložiště z proměnné prostředí vytvořené v oddílu konfigurace vašeho připojovacího řetězce úložiště .The code below retrieves the connection string for the storage account from the environment variable created in the Configure your storage connection string section.

Přidejte tento kód do main funkce:Add this code inside the main function:

// 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í kontejneruCreate a container

Určete název nového kontejneru.Decide on a name for the new container. Následující kód připojí hodnotu UUID k názvu kontejneru, aby bylo zajištěno, že je jedinečný.The code below appends a UUID value to the container name to ensure that it is unique.

Důležité

Názvy kontejnerů musí být malými písmeny.Container names must be lowercase. 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ě.For more information about naming containers and blobs, see Naming and Referencing Containers, Blobs, and Metadata.

Vytvořte instanci třídy BlobServiceClient voláním metody fromConnectionString .Create an instance of the BlobServiceClient class by calling the fromConnectionString method. Pak zavolejte metodu getContainerClient a získejte odkaz na kontejner.Then, call the getContainerClient method to get a reference to a container. Nakonec voláním metody Create vytvořte kontejner ve svém účtu úložiště.Finally, call create to actually create the container in your storage account.

Přidejte tento kód na konec main funkce:Add this code to the end of the main function:

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

Nahrání objektů blob do kontejneruUpload blobs to a container

Následující fragment kódu:The following code snippet:

  1. Vytvoří textový řetězec, který se má nahrát do objektu BLOB.Creates a text string to upload to a blob.
  2. Získá odkaz na objekt BlockBlobClient voláním metody getBlockBlobClient na ContainerClient v části vytvoření kontejneru .Gets a reference to a BlockBlobClient object by calling the getBlockBlobClient method on the ContainerClient from the Create a container section.
  3. Nahraje data řetězce textu do objektu BLOB voláním metody Upload .Uploads the text string data to the blob by calling the upload method.

Přidejte tento kód na konec main funkce:Add this code to the end of the main function:

// 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 kontejneruList the blobs in a container

Seznam objektů BLOB v kontejneru zavoláním metody listBlobsFlat .List the blobs in the container by calling the listBlobsFlat method. V tomto případě byl do kontejneru přidán pouze jeden objekt blob, takže operace výpisu vrátí pouze jeden objekt BLOB.In this case, only one blob has been added to the container, so the listing operation returns just that one blob.

Přidejte tento kód na konec main funkce:Add this code to the end of the main function:

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 blobDownload blobs

Stáhněte dřív vytvořený objekt BLOB voláním metody Download .Download the previously created blob by calling the download method. Vzorový kód obsahuje pomocnou funkci nazvanou streamToString , která se používá ke čtení Node.jsho datového proudu, který je čitelný do řetězce.The example code includes a helper function called streamToString, which is used to read a Node.js readable stream into a string.

Přidejte tento kód na konec main funkce:Add this code to the end of the main function:

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

Tuto pomocnou funkci přidejte za main funkci:Add this helper function after the main function:

// 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í kontejneruDelete a container

Následující kód vyčistí prostředky, které aplikace vytvořila, odebráním celého kontejneru pomocí metody Delete .The following code cleans up the resources the app created by removing the entire container using the delete method. Pokud chcete, můžete také odstranit místní soubory.You can also delete the local files, if you like.

Přidejte tento kód na konec main funkce:Add this code to the end of the main function:

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

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

Spuštění kóduRun the code

Tato aplikace vytvoří textový řetězec a nahraje ho do úložiště objektů BLOB.This app creates a text string and uploads it to Blob storage. Příklad následně vypíše objekty BLOB v kontejneru, stáhne objekt BLOB a zobrazí stažená data.The example then lists the blob(s) in the container, downloads the blob, and displays the downloaded data.

V příkazovém řádku konzoly přejděte do adresáře obsahujícího soubor blob-quickstart-v12.js a pak node Spusťte následující příkaz, který aplikaci spustí.From a console prompt, navigate to the directory containing the blob-quickstart-v12.js file, then execute the following node command to run the app.

node blob-quickstart-v12.js

Výstup aplikace je podobný následujícímu příkladu:The output of the app is similar to the following example:

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

Projděte si kód v ladicím programu a ověřte Azure Portal v průběhu celého procesu.Step through the code in your debugger and check your Azure portal throughout the process. Zkontrolujte, zda se kontejner vytváří.Check to see that the container is being created. Objekt blob můžete otevřít uvnitř kontejneru a zobrazit jeho obsah.You can open the blob inside the container and view the contents.

Další krokyNext steps

V tomto rychlém startu jste zjistili, jak nahrávat, stahovat a vypisovat objekty BLOB pomocí JavaScriptu.In this quickstart, you learned how to upload, download, and list blobs using JavaScript.

Výukové programy, ukázky, rychlé starty a další dokumentaci najdete na webu:For tutorials, samples, quickstarts, and other documentation, visit: