Övning – Ansluta ditt program till ditt Azure Storage-konto

Slutförd

Azure Storage-klientbiblioteket innehåller en objektmodell som används för att interagera med Azure Storage-konton. Den används för att snabbt kunna ansluta till ett Azure Storage-konto och använda API:erna för Azure Storage-tjänsten.

Objektmodell från Azure Storages klientbibliotek

Ett lagringskonto i Azure är indelat i en eller flera containrar som lagrar de faktiska blobobjekten (filerna) på ditt konto. Dessa containrar liknar mappar i ett filsystem. Vi kan använda Azure Storage Blobs-klientbiblioteket för .NET för att skapa en container i vårt lagringskonto där våra foton ska lagras.

Om du vill använda Azure Storage Blobs-klientbiblioteket för .NET i ditt program måste du lägga till en using instruktion överst i programmet för Azure.Storage.Blobs namnområdet.

  1. Lägg till följande kommando i Program.cs.

    using Azure.Storage.Blobs;
    

    Om du vill skapa och hantera containrar i ditt lagringskonto från ditt .NET-program, använder du ett BlobContainerClient-objekt. Om du vill instansiera ett BlobContainerClient objekt måste du ange anslutningssträng till ditt lagringskonto och containernamnet. Containernamnet måste vara mellan 3 och 63 tecken långt och får bara innehålla gemener och bindestreck (-). För det här programmet använder vi namnfotona.

  2. Lägg till följande kod i avsnittet Main i ditt program för att hämta Azure Storage-anslutningssträng och skapa BlobContainerClient objektet.

    var connectionString = configuration.GetConnectionString("StorageAccount");
    string containerName = "photos";
    
    BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
    

    Kommentar

    I det här läget har klientbiblioteket inte försökt ansluta till Azure, eller verifiera anslutningssträngen och åtkomstnyckeln som används. Det har helt enkelt konstruerat ett lättviktigt klientobjekt som används för att utföra åtgärder för Azure Blob Storage. Endast då en åtgärd anropas mot lagringskontot, görs ett nätverksanrop.

  3. Precis under de föregående raderna lägger du till kod för att skapa containern foton , där vi lagrar våra avbildningar.

    container.CreateIfNotExists();
    
  4. Spara filen.

  5. Kör nu programmet för att skapa containern på lagringskontot. Eftersom vi använde CreateIfNotExists metoden kan du köra programmet flera gånger, men containern skapas bara vid den första körningen.

    dotnet run
    
  6. Du kan kontrollera att du har skapat containern genom att köra följande Azure CLI-kommando. Kom ihåg att ersätta <name> med namnet på lagringskontot.

    az storage container list \
    --account-name <name>
    

Azure Storage Blob-klientbiblioteket för JavaScript innehåller många klientobjekt för att interagera med Azure Storage Blobs. Överst i den här hierarkin hittar du BlobServiceClient-objektet. Så här använder du det här objektet i JavaScript-koden:

  1. Öppna filen index.js i kodredigeraren och lägg till följande instruktion direkt efter -instruktionen require('dotenv').config(); :

    const { BlobServiceClient } = require("@azure/storage-blob");
    
  2. Nu måste du skapa ett BlobServiceClient objekt i koden genom att hämta lagringskontot anslutningssträng och skicka det till fabriksmetoden fromConnectionStringBlobServiceClient objektet. Lägg till följande kodrader:

    const storageAccountConnectionString = process.env.AZURE_STORAGE_CONNECTION_STRING;
    const blobServiceClient = BlobServiceClient.fromConnectionString(storageAccountConnectionString);
    

    Kommentar

    Klientbiblioteket försöker inte ansluta till Azure förrän en åtgärd anropas som kräver det. Klientobjektet är ett lättviktsobjekt som ger åtkomst till Azure Blob Storage. Den verifierar inte anslutningen eller åtkomstnyckeln som används.

  3. När du har definierat ett klientobjekt i programmet kan du använda metoder på klientobjektet för att utföra verkligt arbete. Metoder som gör nätverksanrop är avsiktligt asynkrona. Biblioteket använder Promises för att returnera asynkrona resultat. Därför måste du markera huvudfunktionen som asynkron. Ersätt huvudfunktionsobjektet med följande kod. Raden som börjar med två snedstreck är en kommentar.

    async function main() {
     // Function code here
    }
    
  4. Spara ändringarna i index.js.

    Nu ska vi lägga till lite kod för att köra en åtgärd mot vårt lagringskonto. Ett lagringskonto är organiserat i en eller flera containrar som fungerar som mappar i ditt lagringskonto. Blobobjekten (filerna) som du skapar på ditt lagringskonto, lagras i någon av dessa containrar. Du måste skapa en container på ditt lagringskonto för att lagra foton.

    Containernamnet måste vara mellan 3 och 63 tecken långt och får bara innehålla gemener och bindestreck (-). För det här programmet använder vi namnfotona.

    Om du vill skapa en container på ditt lagringskonto måste du skaffa ett ContainerClient -objekt som representerar containern på lagringskontot. Även om det ännu inte finns någon container i vårt lagringskonto kan vi använda ContainerClient för att skapa containern och hantera den när den har skapats.

  5. Om du vill hämta ContainerClient objektet anropar getContainerClient du -metoden för objektet och anger namnet på BlobServiceClient containern som en parameter. Använd sedan metoden för containerClient-objektet för att skapa containern i ditt Azure Storage-kontocreateIfNotExists. Ersätt kommentarsraden // Function Code here med följande instruktioner:

    // Create a container (folder) if it does not exist
    const containerName = 'photos';
    const containerClient = blobServiceClient.getContainerClient(containerName);
    const containerExists = await containerClient.exists()
    if ( !containerExists) {
        const createContainerResponse = await containerClient.createIfNotExists();
        console.log(`Create container ${containerName} successfully`, createContainerResponse.succeeded);
    }
    else {
        console.log(`Container ${containerName} already exists`);
    }
    
  6. Spara ändringarna i filen index.js .

  7. På Cloud Shell-kommandoraden anger du följande kommando för att skapa och köra programmet, vilket skapar containern i ditt lagringskonto:

    node index.js
    

    Dricks

    Om du får ett felmeddelande om användningen av nyckelordet await kontrollerar du att du har lagt till nyckelordet async i funktionsdefinitionen main enligt det sista steget i föregående instruktioner.

    Första gången du kör programmet bör du se ett meddelande om att containern har skapats, med statusen true. Den andra och efterföljande tiden du kör programmet visas ett liknande meddelande med statusen false eftersom containern redan finns.

  8. Du kan kontrollera att du har skapat containern genom att köra följande Azure CLI-kommando. Kom ihåg att ersätta <name> med namnet på lagringskontot.

    az storage container list \
    --account-name <name>
    

Nu när vårt program ansluter till vårt Azure-lagringskonto och vi har skapat en fotocontainer ska vi låta programmet ladda upp en avbildning till det.