Quickstart: Blobs beheren met Java v12 SDK
In deze quickstart leert u hoe u blobs beheert met behulp van Java. Blobs zijn objecten die grote hoeveelheden tekst of binaire gegevens kunnen bevatten, zoals afbeeldingen, documenten, streaming media en archiefgegevens. U kunt blob, downloaden uploaden en weergeven en u kunt containers maken en verwijderen.
Aanvullende bronnen:
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een Azure Storage-account. Een opslagaccount maken.
- Java Development Kit (JDK) versie 8 of hoger.
- Apache Maven.
Instellen
In deze sectie wordt uitgelegd hoe u een project voorbereidt om te werken met de Azure Blob Storage-clientbibliotheek v12 voor Java.
Het project maken
Maak een Java-toepassing met de naam blob-quickstart-v12.
Gebruik in een consolevenster (zoals cmd, PowerShell of Bash) Maven om een nieuwe console-app te maken met de naam blob-quickstart-v12. 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-v12 ` --define archetypeArtifactId=maven-archetype-quickstart ` --define archetypeVersion=1.4De 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-v12 [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-v12 [INFO] Project created from Archetype in dir: C:\QuickStarts\blob-quickstart-v12 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.056 s [INFO] Finished at: 2019-10-23T11:09:21-07:00 [INFO] ------------------------------------------------------------------------ ```Schakel over naar de zojuist gemaakte blob-quickstart-v12-map .
cd blob-quickstart-v12Maak een andere map met de naam gegevens aan in de map blob-quickstart-v12. Hier worden de blob-gegevensbestanden gemaakt en opgeslagen.
mkdir data
Het pakket installeren
Open het bestand pom.xml in uw teksteditor. Voeg het volgende afhankelijkheidselement toe aan de groep met afhankelijkheden.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.13.0</version>
</dependency>
Het app-framework instellen
Ga als volgt te werk vanuit de projectmap:
- Ga naar de map /src/main/java/com/blobs/quickstart
- Open het bestand App.java in uw editor
- Verwijder de
System.out.println("Hello world!");-instructie - Voeg
import-instructies toe
Hier volgt de code:
package com.blobs.quickstart;
/**
* Azure blob storage v12 SDK quickstart
*/
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
{
}
}
Kopieer uw referenties van de Azure Portal
Wanneer met de voorbeeldtoepassing een aanvraag wordt ingediend bij Azure Storage, moet deze aanvraag worden geautoriseerd. Om een aanvraag te autoriseren voegt u de referenties van uw opslagaccount toe als een verbindingsreeks. Voer de volgende stappen uit om de referenties van uw opslagaccount weer te geven:
Meld u aan bij Azure Portal.
Zoek uw opslagaccount.
Selecteer toegangssleutels in het menuvenster van het opslagaccount onder Beveiliging en netwerken. Hier kunt u de toegangssleutels voor het account en de volledige connection string voor elke sleutel bekijken.

Selecteer In het deelvenster Toegangssleutelsde optie Sleutels weergeven.
Zoek in de sectie key1 de waarde van de verbindingsreeks . Selecteer het pictogram Kopiëren naar klembord om de connection string te kopiëren. In de volgende sectie voegt u de connection string waarde toe aan een omgevingsvariabele.

De opslagverbindingsreeks configureren
Nadat u de connection string hebt gekopieerd, schrijft u deze naar een nieuwe omgevingsvariabele op de lokale computer waarop de toepassing wordt uitgevoerd. Als u de omgevingsvariabele wilt instellen, opent u een consolevenster en volgt u de aanwijzingen voor uw besturingssysteem. Vervang <yourconnectionstring> door de feitelijke verbindingsreeks.
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Nadat u de omgevingsvariabele in Windows hebt toegevoegd, moet u een nieuw exemplaar van het opdrachtvenster starten.
Programma's opnieuw opstarten
Nadat u de omgevingsvariabele hebt toegevoegd, start u actieve programma's die de omgevingsvariabele moeten lezen, opnieuw. Start bijvoorbeeld uw ontwikkelomgeving of editor opnieuw voordat u doorgaat.
Objectmodel
Azure Blob Storage is geoptimaliseerd voor het opslaan van grote hoeveelheden ongestructureerde gegevens. Ongestructureerde gegevens zijn gegevens die niet voldoen aan een bepaald gegevensmodel of bepaalde 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.

Gebruik de volgende Java-klassen om te communiceren met deze resources:
- BlobServiceClient: Met de klasse
BlobServiceClientkunt u Azure Storage-resources en blob-containers bewerken. Het opslagaccount biedt de naamruimte op het hoogste niveau voor de Blob service. - De klasse biedt een fluent builder-API ter ondersteuning van het configureren en instantiëren van -objecten.
- BlobContainerClient: Met de klasse
BlobContainerClientkunt u Azure Storage-containers en de bijbehorende blobs bewerken. - Met de klasse [ kunt u Azure Storage-blobs bewerken.
- BlobItem: De klasse
BlobItemvertegenwoordigt afzonderlijke blobs die worden geretourneerd uit een aanroep van listBlobs.
Codevoorbeelden
Deze voorbeeldcodefragmenten laten zien hoe u het volgende kunt uitvoeren met de Azure Blob Storage-clientbibliotheek voor Java:
- De verbindingsreeks ophalen
- Een container maken
- Blobs uploaden naar een container
- De blobs in een container weergeven
- Blobs downloaden
- Container verwijderen
De verbindingsreeks ophalen
De onderstaande code haalt de verbindingstekenreeks voor het opslagaccount op van de omgevingsvariabele die is gemaakt in de sectie De opslagverbindingsreeks configureren.
Voeg deze code toe in de methode Main:
System.out.println("Azure Blob Storage v12 - Java quickstart sample\n");
// 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.
String connectStr = System.getenv("AZURE_STORAGE_CONNECTION_STRING");
Een container maken
Verzin een naam voor de nieuwe container. Met de onderstaande code wordt een UUID-waarde aan de containernaam toegevoegd om te verzekeren dat deze uniek is.
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.
Maak vervolgens een exemplaar van de klasse BlobContainerClient en roep de methode create aan om de container in uw opslagaccount daadwerkelijk te maken.
Voeg deze code toe aan het einde van de Main-methode:
// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient();
//Create a unique name for the container
String containerName = "quickstartblobs" + java.util.UUID.randomUUID();
// Create the container and return a container client object
BlobContainerClient containerClient = blobServiceClient.createBlobContainer(containerName);
Blobs uploaden naar een container
Het volgende codefragment:
- Hiermee maakt u een tekstbestand in de lokale map gegevens.
- Hiermee wordt een verwijzing naar een BlobClient-object opgehaald door de methode getBlobClient aan te roepen voor de container vanuit de sectie Een container maken.
- Hiermee wordt het lokale tekstbestand geüpload naar de blob door de methode uploadFromFile aan te roepen. Met deze methode wordt de blob gemaakt als deze nog niet bestaat, maar niet overschreven als dat wel het geval is.
Voeg deze code toe aan het einde van de Main-methode:
// Create a local file in the ./data/ directory for uploading and downloading
String localPath = "./data/";
String fileName = "quickstart" + java.util.UUID.randomUUID() + ".txt";
File localFile = new File(localPath + fileName);
// Write text to the file
FileWriter writer = new FileWriter(localPath + fileName, true);
writer.write("Hello, World!");
writer.close();
// Get a reference to a blob
BlobClient blobClient = containerClient.getBlobClient(fileName);
System.out.println("\nUploading to Blob storage as blob:\n\t" + blobClient.getBlobUrl());
// Upload the blob
blobClient.uploadFromFile(localPath + fileName);
De blobs in een container in een lijst weergeven
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 : containerClient.listBlobs()) {
System.out.println("\t" + blobItem.getName());
}
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 so that you can see both files.
String downloadFileName = fileName.replace(".txt", "DOWNLOAD.txt");
File downloadedFile = new File(localPath + downloadFileName);
System.out.println("\nDownloading blob to\n\t " + localPath + downloadFileName);
blobClient.downloadToFile(localPath + downloadFileName);
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 gelegenheid om te controleren dat de resources correct zijn gemaakt, voordat ze worden verwijderd.
Voeg deze code toe aan het einde van de Main-methode:
// Clean up
System.out.println("\nPress the Enter key to begin clean up");
System.console().readLine();
System.out.println("Deleting blob container...");
containerClient.delete();
System.out.println("Deleting the local source and downloaded files...");
localFile.delete();
downloadedFile.delete();
System.out.println("Done");
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.
Navigeer naar de map die het bestand pom.xml bevat en compileer het project met behulp van de volgende mvn-opdracht.
mvn compile
Bouw vervolgens het pakket.
mvn package
Voer de volgende mvn-opdracht uit om de app uit te voeren.
mvn exec:java -Dexec.mainClass="com.blobs.quickstart.App" -Dexec.cleanupDaemonThreads=false
De uitvoer van de app lijkt op die in het volgende voorbeeld:
Azure Blob Storage v12 - Java quickstart sample
Uploading to Blob storage as blob:
https://mystorageacct.blob.core.windows.net/quickstartblobsf9aa68a5-260e-47e6-bea2-2dcfcfa1fd9a/quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65.txt
Listing blobs...
quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65.txt
Downloading blob to
./data/quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65DOWNLOAD.txt
Press the Enter key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done
Voordat u begint met opschonen, controleert u of de twee bestanden zich in de map gegevens bevinden. Als u ze opent, ziet u dat ze identiek zijn.
Nadat u de bestanden hebt gecontroleerd, drukt u op Enter om de testbestanden te verwijderen en het voorbeeld te voltooien.
Volgende stappen
In deze quickstart hebt u geleerd hoe u blobs kunt uploaden, downloaden en er een lijst van maken met behulp van Java.
Als u voorbeeld-apps voor Blob-opslag wilt zien, ga dan naar:
- Zie de Azure SDK voor Java voor meer informatie.
- Ga naar Azure voor Java-cloudontwikkelaars voor zelfstudies, voorbeelden, quickstarts en andere documentatie.