Share via


Quickstart: Azure Blob Storage-clientbibliotheek voor Java

Notitie

Met de optie Volledig nieuw bouwen wordt u stapsgewijs begeleid bij het maken van een nieuw project, het installeren van pakketten, het schrijven van de code en het uitvoeren van een eenvoudige console-app. Deze aanpak wordt aanbevolen als u alle details wilt begrijpen die betrekking hebben op het maken van een app die verbinding maakt met Azure Blob Storage. Als u liever implementatietaken automatiseert en begint met een voltooid project, kiest u Beginnen met een sjabloon.

Notitie

De optie Beginnen met een sjabloon maakt gebruik van de Azure Developer CLI om implementatietaken te automatiseren en u begint met een voltooid project. Deze aanpak wordt aanbevolen als u de code zo snel mogelijk wilt verkennen zonder de installatietaken te doorlopen. Als u de voorkeur geeft aan stapsgewijze instructies voor het bouwen van de app, kiest u Volledig nieuw bouwen.

Ga aan de slag met de Azure Blob Storage-clientbibliotheek voor Java om blobs en containers te beheren.

In dit artikel voert u de stappen uit om het pakket te installeren en voorbeeldcode voor basistaken uit te proberen.

In dit artikel gebruikt u de Azure Developer CLI om Azure-resources te implementeren en een voltooide console-app uit te voeren met slechts een paar opdrachten.

Tip

Als u met Azure Storage-resources in een Spring-toepassing werkt, raden we u aan Spring Cloud Azure als alternatief te beschouwen. Spring Cloud Azure is een opensource-project dat naadloze Spring-integratie met Azure-services biedt. Zie Een bestand uploaden naar een Azure Storage-blob voor meer informatie over Spring Cloud Azure en voor een voorbeeld van blobopslag.

API-referentiedocumentatie | Broncode van bibliotheek | Pakket (Maven) | Samples

Vereisten

Instellen

In deze sectie wordt uitgelegd hoe u een project voorbereidt voor gebruik met de Azure Blob Storage-clientbibliotheek voor Java.

Het project maken

Maak een Java-toepassing met de naam blob-quickstart.

  1. Gebruik Maven in een consolevenster (zoals PowerShell of Bash) om een nieuwe console-app te maken met de naam blob-quickstart. Typ de volgende mvn-opdracht om een 'Hallo wereld!' te maken Java-project.

    mvn archetype:generate `
        --define interactiveMode=n `
        --define groupId=com.blobs.quickstart `
        --define artifactId=blob-quickstart `
        --define archetypeArtifactId=maven-archetype-quickstart `
        --define archetypeVersion=1.4
    
  2. De uitvoer van het project zou er ongeveer als volgt moeten uitzien:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------< org.apache.maven:standalone-pom >-------------------
    [INFO] Building Maven Stub Project (No POM) 1
    [INFO] --------------------------------[ pom ]---------------------------------
    [INFO]
    [INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
    [INFO]
    [INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
    [INFO]
    [INFO]
    [INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
    [INFO] Generating project in Batch mode
    [INFO] ----------------------------------------------------------------------------
    [INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
    [INFO] ----------------------------------------------------------------------------
    [INFO] Parameter: groupId, Value: com.blobs.quickstart
    [INFO] Parameter: artifactId, Value: blob-quickstart
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: package, Value: com.blobs.quickstart
    [INFO] Parameter: packageInPathFormat, Value: com/blobs/quickstart
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: package, Value: com.blobs.quickstart
    [INFO] Parameter: groupId, Value: com.blobs.quickstart
    [INFO] Parameter: artifactId, Value: blob-quickstart
    [INFO] Project created from Archetype in dir: C:\QuickStarts\blob-quickstart
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  7.056 s
    [INFO] Finished at: 2019-10-23T11:09:21-07:00
    [INFO] ------------------------------------------------------------------------
        ```
    
    
  3. Schakel over naar de zojuist gemaakte blob-quickstart-map .

    cd blob-quickstart
    
  4. Maak naast de blob-quickstart-map een andere map met de naam gegevens. In deze map worden de blobgegevensbestanden gemaakt en opgeslagen.

    mkdir data
    

De pakketten installeren

Open het pom.xml bestand in de teksteditor.

Voeg azure-sdk-bom toe om een afhankelijkheid te maken van de nieuwste versie van de bibliotheek. Vervang in het volgende codefragment de {bom_version_to_target} tijdelijke aanduiding door het versienummer. Als u azure-sdk-bom gebruikt, hoeft u niet de versie van elke afzonderlijke afhankelijkheid op te geven. Zie de Azure SDK BOM README voor meer informatie over de BOM.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Voeg vervolgens de volgende afhankelijkheidselementen toe aan de groep afhankelijkheden. De azure-identity-afhankelijkheid is nodig voor verbindingen zonder wachtwoord met Azure-services.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

Stel het app-framework in

Volg de stappen in de projectmap om de basisstructuur van de app te maken:

  1. Ga naar de map /src/main/java/com/blobs/quickstart
  2. Open het bestand App.java in de editor
  3. De regel verwijderen System.out.println("Hello world!");
  4. De benodigde import instructies toevoegen

De code moet er als volgt uitzien:

package com.blobs.quickstart;

/**
 * Azure Blob Storage quickstart
 */
import com.azure.identity.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.io.*;

public class App
{
    public static void main(String[] args) throws IOException
    {
        // Quickstart code goes here
    }
}

Als Azure Developer CLI is geïnstalleerd, kunt u een opslagaccount maken en de voorbeeldcode uitvoeren met slechts een paar opdrachten. U kunt het project uitvoeren in uw lokale ontwikkelomgeving of in een DevContainer.

De Azure Developer CLI-sjabloon initialiseren en resources implementeren

Voer vanuit een lege map de volgende stappen uit om de azd sjabloon te initialiseren, Azure-resources in te richten en aan de slag te gaan met de code:

  • Kloon de assets van de quickstart-opslagplaats vanuit GitHub en initialiseer de sjabloon lokaal:

    azd init --template blob-storage-quickstart-java
    

    U wordt gevraagd om de volgende informatie:

    • Omgevingsnaam: deze waarde wordt gebruikt als voorvoegsel voor alle Azure-resources die zijn gemaakt door Azure Developer CLI. De naam moet uniek zijn voor alle Azure-abonnementen en moet tussen de 3 en 24 tekens lang zijn. De naam mag alleen cijfers en kleine letters bevatten.
  • Meld u aan bij Azure:

    azd auth login
    
  • De resources inrichten en implementeren in Azure:

    azd up
    

    U wordt gevraagd om de volgende informatie:

    • Abonnement: het Azure-abonnement waarop uw resources zijn geïmplementeerd.
    • Locatie: De Azure-regio waar uw resources worden geïmplementeerd.

    De implementatie kan enkele minuten duren. De uitvoer van de azd up opdracht bevat de naam van het zojuist gemaakte opslagaccount, dat u later nodig hebt om de code uit te voeren.

De voorbeeldcode uitvoeren

Op dit moment worden de resources geïmplementeerd in Azure en is de code bijna klaar om te worden uitgevoerd. Volg deze stappen om de naam van het opslagaccount in de code bij te werken en voer de voorbeeldconsole-app uit:

  • Werk de naam van het opslagaccount bij:
    1. Navigeer in de lokale map naar de map blob-quickstart/src/main/java/com/blobs/quickstart .
    2. Open het bestand met de naam App.java in de editor. Zoek de <storage-account-name> tijdelijke aanduiding en vervang deze door de werkelijke naam van het opslagaccount dat door de azd up opdracht is gemaakt.
    3. De wijzigingen opslaan.
  • Voer het project uit:
    1. Navigeer naar de map blob-quickstart met het pom.xml bestand. Compileer het project met behulp van de volgende mvn opdracht:
      mvn compile
      
    2. Verpakt de gecompileerde code in de distribueerbare indeling:
      mvn package
      
    3. Voer de volgende mvn opdracht uit om de app uit te voeren:
      mvn exec:java
      
  • Bekijk de uitvoer: met deze app wordt een testbestand gemaakt in uw lokale gegevensmap en geüpload naar een container in het opslagaccount. Vervolgens wordt een lijst gemaakt van de blobs in de container en wordt het bestand gedownload met een nieuwe naam, zodat u het oude en nieuwe bestand kunt vergelijken.

Zie Codevoorbeelden voor meer informatie over hoe de voorbeeldcode werkt.

Wanneer u klaar bent met het testen van de code, raadpleegt u de sectie Resources opschonen om de resources te verwijderen die met de azd up opdracht zijn gemaakt.

Objectmodel

Azure Blob Storage is geoptimaliseerd voor het opslaan van grote hoeveelheden ongestructureerde gegevens. Niet-gestructureerde gegevens voldoen niet aan een bepaald gegevensmodel of -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 van de blobopslagarchitectuur

Gebruik de volgende Java-klassen om te communiceren met deze resources:

  • BlobServiceClient: Met de BlobServiceClient klasse kunt u Azure Storage-resources en blobcontainers bewerken. Het opslagaccount biedt de naamruimte op het hoogste niveau voor de Blob service.
  • BlobServiceClientBuilder: De BlobServiceClientBuilder klasse biedt een Fluent Builder-API om de configuratie en instantiëring van BlobServiceClient objecten te helpen.
  • BlobContainerClient: Met de BlobContainerClient klasse kunt u Azure Storage-containers en hun blobs bewerken.
  • BlobClient: Met de BlobClient klasse kunt u Azure Storage-blobs bewerken.
  • BlobItem: De BlobItem klasse vertegenwoordigt afzonderlijke blobs die worden geretourneerd door een aanroep naar listBlobs.

Codevoorbeelden

Deze voorbeeldcodefragmenten laten zien hoe u de volgende acties uitvoert met de Azure Blob Storage-clientbibliotheek voor Java:

Belangrijk

Zorg ervoor dat u de juiste afhankelijkheden in pom.xml en de benodigde instructies hebt om de codevoorbeelden te laten werken, zoals beschreven in de sectie instellen .

Notitie

De Azure Developer CLI-sjabloon bevat een bestand met voorbeeldcode die al aanwezig is. De volgende voorbeelden bevatten details voor elk deel van de voorbeeldcode. De sjabloon implementeert de aanbevolen verificatiemethode zonder wachtwoord, zoals beschreven in de sectie Verifiëren bij Azure . De methode verbindingsreeks wordt weergegeven als alternatief, maar wordt niet gebruikt in de sjabloon en wordt niet aanbevolen voor productiecode.

Verifiëren bij Azure en toegang tot blobgegevens autoriseren

Toepassingsaanvragen voor Azure Blob Storage moeten worden geautoriseerd. Het gebruik van de DefaultAzureCredential klasse die wordt geleverd door de Azure Identity-clientbibliotheek is de aanbevolen methode voor het implementeren van verbindingen zonder wachtwoorden met Azure-services in uw code, inclusief Blob Storage.

U kunt aanvragen voor Azure Blob Storage ook autoriseren met behulp van de toegangssleutel voor het account. Deze aanpak moet echter met voorzichtigheid worden gebruikt. Ontwikkelaars moeten ijverig zijn om de toegangssleutel nooit beschikbaar te maken op een onbeveiligde locatie. Iedereen met de toegangssleutel kan aanvragen voor het opslagaccount autoriseren en heeft effectief toegang tot alle gegevens. DefaultAzureCredential biedt verbeterde beheer- en beveiligingsvoordelen ten opzichte van de accountsleutel om verificatie zonder wachtwoord mogelijk te maken. Beide opties worden in het volgende voorbeeld gedemonstreerd.

DefaultAzureCredential is een klasse die wordt geleverd door de Azure Identity-clientbibliotheek voor Java. DefaultAzureCredential ondersteunt meerdere verificatiemethoden en bepaalt welke methode tijdens runtime moet worden gebruikt. Met deze aanpak kan uw app verschillende verificatiemethoden gebruiken in verschillende omgevingen (lokaal versus productie) zonder omgevingsspecifieke code te implementeren.

De volgorde en locaties waarin DefaultAzureCredential wordt gezocht naar referenties, vindt u in het overzicht van de Azure Identity-bibliotheek.

Uw app kan zich bijvoorbeeld verifiëren met behulp van uw visual Studio Code-aanmeldingsreferenties bij het lokaal ontwikkelen. Uw app kan vervolgens een beheerde identiteit gebruiken zodra deze is geïmplementeerd in Azure. Er zijn geen codewijzigingen vereist voor deze overgang.

Rollen toewijzen aan uw Microsoft Entra-gebruikersaccount

Zorg er bij het lokaal ontwikkelen voor dat het gebruikersaccount dat toegang heeft tot blobgegevens over de juiste machtigingen beschikt. U hebt Inzender voor Opslagblobgegevens nodig om blobgegevens te lezen en schrijven. Als u uzelf deze rol wilt toewijzen, moet u de rol Beheerder voor gebruikerstoegang of een andere rol met de actie Microsoft.Authorization/roleAssignments/write krijgen toegewezen. U kunt Azure RBAC-rollen toewijzen aan een gebruiker met behulp van Azure Portal, Azure CLI of Azure PowerShell. Meer informatie over de beschikbare bereiken voor roltoewijzingen vindt u op de overzichtspagina van het bereik.

In dit scenario wijst u machtigingen toe aan uw gebruikersaccount, dat is afgestemd op het opslagaccount, om het principe van minimale bevoegdheden te volgen. Deze procedure biedt gebruikers alleen de minimale machtigingen die nodig zijn en maakt veiligere productieomgevingen.

In het volgende voorbeeld wordt de rol Inzender voor opslagblobgegevens toegewezen aan uw gebruikersaccount, dat zowel lees- als schrijftoegang biedt tot blobgegevens in uw opslagaccount.

Belangrijk

In de meeste gevallen duurt het een of twee minuten voordat de roltoewijzing is doorgegeven in Azure, maar in zeldzame gevallen kan het maximaal acht minuten duren. Als u verificatiefouten ontvangt wanneer u de code voor het eerst uitvoert, wacht u even en probeert u het opnieuw.

  1. Zoek uw opslagaccount in Azure Portal met behulp van de hoofdzoekbalk of linkernavigatiebalk.

  2. Selecteer op de overzichtspagina van het opslagaccount toegangsbeheer (IAM) in het menu aan de linkerkant.

  3. Selecteer op de pagina Toegangsbeheer (IAM) het tabblad Roltoewijzingen .

  4. Selecteer + Toevoegen in het bovenste menu en voeg vervolgens roltoewijzing toe in de resulterende vervolgkeuzelijst.

    Een schermopname die laat zien hoe u een rol toewijst.

  5. Gebruik het zoekvak om de resultaten te filteren op de gewenste rol. Zoek in dit voorbeeld naar Inzender voor Opslagblobgegevens en selecteer het overeenkomende resultaat en kies vervolgens Volgende.

  6. Selecteer onder Toegang toewijzen de optie Gebruiker, groep of service-principal en kies vervolgens + Leden selecteren.

  7. Zoek in het dialoogvenster naar uw Microsoft Entra-gebruikersnaam (meestal uw user@domain e-mailadres) en kies Vervolgens onderaan het dialoogvenster Selecteren .

  8. Selecteer Beoordelen + toewijzen om naar de laatste pagina te gaan en vervolgens opnieuw beoordelen en toewijzen om het proces te voltooien.

Meld u aan en verbind uw app-code met Azure met behulp van DefaultAzureCredential

U kunt toegang tot gegevens in uw opslagaccount autoriseren met behulp van de volgende stappen:

  1. Zorg ervoor dat u bent geverifieerd met hetzelfde Microsoft Entra-account waaraan u de rol hebt toegewezen in uw opslagaccount. U kunt zich verifiëren via de Azure CLI, Visual Studio Code of Azure PowerShell.

    Meld u aan bij Azure via de Azure CLI met behulp van de volgende opdracht:

    az login
    
  2. Als u deze wilt gebruiken DefaultAzureCredential, moet u ervoor zorgen dat de azure-identity-afhankelijkheid is toegevoegd in pom.xml:

    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-identity</artifactId>
    </dependency>
    
  3. Voeg deze code toe aan de Main methode. Wanneer de code wordt uitgevoerd op uw lokale werkstation, worden de referenties van de ontwikkelaar gebruikt van het hulpprogramma met prioriteit waarmee u bent aangemeld voor verificatie bij Azure, zoals de Azure CLI of Visual Studio Code.

    /*
     * The default credential first checks environment variables for configuration
     * If environment configuration is incomplete, it will try managed identity
     */
    DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
    
    // Azure SDK client builders accept the credential as a parameter
    // TODO: Replace <storage-account-name> with your actual storage account name
    BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
            .endpoint("https://<storage-account-name>.blob.core.windows.net/")
            .credential(defaultCredential)
            .buildClient();
    
  4. Zorg ervoor dat u de naam van het opslagaccount bijwerkt in de URI van uw BlobServiceClient. De naam van het opslagaccount vindt u op de overzichtspagina van Azure Portal.

    Een schermopname die laat zien hoe u de naam van het opslagaccount kunt vinden.

    Notitie

    Wanneer deze wordt geïmplementeerd in Azure, kan dezelfde code worden gebruikt om aanvragen naar Azure Storage te autoriseren vanuit een toepassing die wordt uitgevoerd in Azure. U moet echter beheerde identiteiten inschakelen in uw app in Azure. Configureer vervolgens uw opslagaccount zodat die beheerde identiteit verbinding kan maken. Zie de zelfstudie over verificatie van door Azure gehoste apps voor gedetailleerde instructies over het configureren van deze verbinding tussen Azure-services.

Een container maken

Maak een nieuwe container in uw opslagaccount door de methode createBlobContainer op het object aan te blobServiceClient roepen. In dit voorbeeld voegt de code een GUID-waarde toe aan de containernaam om ervoor te zorgen dat deze uniek is.

Voeg deze code toe aan het einde van de Main-methode:

// Create a unique name for the container
String containerName = "quickstartblobs" + java.util.UUID.randomUUID();

// Create the container and return a container client object
BlobContainerClient blobContainerClient = blobServiceClient.createBlobContainer(containerName);

Zie Een blobcontainer maken met Java voor meer informatie over het maken van een container en voor meer codevoorbeelden.

Belangrijk

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.

Blobs uploaden naar een container

Upload een blob naar een container door de methode uploadFromFile aan te roepen. Met de voorbeeldcode wordt een tekstbestand gemaakt in de lokale gegevensmap om naar de container te uploaden.

Voeg deze code toe aan het einde van de Main-methode:

// Create the ./data/ directory and a file for uploading and downloading
String localPath = "./data/";
new File(localPath).mkdirs();
String fileName = "quickstart" + java.util.UUID.randomUUID() + ".txt";

// Get a reference to a blob
BlobClient blobClient = blobContainerClient.getBlobClient(fileName);

// Write text to the file
FileWriter writer = null;
try
{
    writer = new FileWriter(localPath + fileName, true);
    writer.write("Hello, World!");
    writer.close();
}
catch (IOException ex)
{
    System.out.println(ex.getMessage());
}

System.out.println("\nUploading to Blob storage as blob:\n\t" + blobClient.getBlobUrl());

// Upload the blob
blobClient.uploadFromFile(localPath + fileName);

Zie Een blob uploaden met Java voor meer informatie over het uploaden van blobs en voor meer codevoorbeelden.

Blobs in een container vermelden

Hiermee worden de blobs in de container weergegeven door de methode listBlobs aan te roepen. In dit geval is slechts één blob aan de container toegevoegd, zodat met de weergavebewerking alleen die ene blob wordt geretourneerd.

Voeg deze code toe aan het einde van de Main-methode:

System.out.println("\nListing blobs...");

// List the blob(s) in the container.
for (BlobItem blobItem : blobContainerClient.listBlobs()) {
    System.out.println("\t" + blobItem.getName());
}

Zie Lijst-blobs met Java voor meer informatie over het weergeven van blobs en voor meer codevoorbeelden.

Blobs downloaden

Download de eerder gemaakte blob door de methode downloadToFile aan te roepen. De voorbeeldcode voegt het achtervoegsel 'DOWNLOAD' toe aan de naam van het bestand, zodat u beide bestanden in het lokale bestandssysteem kunt zien.

Voeg deze code toe aan het einde van de Main-methode:

// Download the blob to a local file

// Append the string "DOWNLOAD" before the .txt extension for comparison purposes
String downloadFileName = fileName.replace(".txt", "DOWNLOAD.txt");

System.out.println("\nDownloading blob to\n\t " + localPath + downloadFileName);

blobClient.downloadToFile(localPath + downloadFileName);

Zie Een blob downloaden met Java voor meer informatie over het downloaden van blobs en voor meer codevoorbeelden.

Een container verwijderen

De volgende code ruimt de resources die door de app zijn gemaakt op door de hele container te verwijderen met behulp van de methode delete. Ook worden de lokale bestanden verwijderd die door de app zijn gemaakt.

De app pauzeert voor gebruikersinvoer door System.console().readLine() aan te roepen voordat deze de blob, container en lokale bestanden verwijdert. Dit is een goede kans om te controleren of de resources correct zijn gemaakt voordat ze worden verwijderd.

Voeg deze code toe aan het einde van de Main-methode:

File downloadedFile = new File(localPath + downloadFileName);
File localFile = new File(localPath + fileName);

// Clean up resources
System.out.println("\nPress the Enter key to begin clean up");
System.console().readLine();

System.out.println("Deleting blob container...");
blobContainerClient.delete();

System.out.println("Deleting the local source and downloaded files...");
localFile.delete();
downloadedFile.delete();

System.out.println("Done");

Zie Een blobcontainer verwijderen en herstellen met Java voor meer informatie over het verwijderen van een container en voor meer codevoorbeelden.

De code uitvoeren

Met deze app wordt een testbestand gemaakt in uw lokale map en geüpload naar de Blob-opslag. Vervolgens wordt een lijst gemaakt van de blobs in de container en wordt het bestand gedownload met een nieuwe naam, zodat u het oude en nieuwe bestand kunt vergelijken.

Volg de stappen voor het compileren, verpakken en uitvoeren van de code

  1. Navigeer naar de map met het pom.xml bestand en compileer het project met behulp van de volgende mvn opdracht:
    mvn compile
    
  2. Verpakt de gecompileerde code in de distribueerbare indeling:
    mvn package
    
  3. Voer de volgende mvn opdracht uit om de app uit te voeren:
    mvn exec:java -D exec.mainClass=com.blobs.quickstart.App -D exec.cleanupDaemonThreads=false
    
    Om de uitvoeringsstap te vereenvoudigen, kunt u deze toevoegen exec-maven-plugin aan pom.xml en configureren, zoals hieronder wordt weergegeven:
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.4.0</version>
      <configuration>
        <mainClass>com.blobs.quickstart.App</mainClass>
        <cleanupDaemonThreads>false</cleanupDaemonThreads>
      </configuration>
    </plugin>
    
    Met deze configuratie kunt u de app uitvoeren met de volgende opdracht:
    mvn exec:java
    

De uitvoer van de app is vergelijkbaar met het volgende voorbeeld (UUID-waarden weggelaten voor leesbaarheid):

Azure Blob Storage - Java quickstart sample

Uploading to Blob storage as blob:
        https://mystorageacct.blob.core.windows.net/quickstartblobsUUID/quickstartUUID.txt

Listing blobs...
        quickstartUUID.txt

Downloading blob to
        ./data/quickstartUUIDDOWNLOAD.txt

Press the Enter key to begin clean up

Deleting blob container...
Deleting the local source and downloaded files...
Done

Voordat u begint met het opschonen, controleert u de gegevensmap voor de twee bestanden. U kunt ze vergelijken en zien dat ze identiek zijn.

Resources opschonen

Nadat u de bestanden hebt gecontroleerd en klaar bent met testen, drukt u op Enter om de testbestanden te verwijderen, samen met de container die u in het opslagaccount hebt gemaakt. U kunt ook Azure CLI gebruiken om resources te verwijderen.

Wanneer u klaar bent met de quickstart, kunt u de resources die u hebt gemaakt opschonen door de volgende opdracht uit te voeren:

azd down

U wordt gevraagd om het verwijderen van de resources te bevestigen. Voer y dit in om te bevestigen.

Volgende stap