Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Opcja Kompiluj od podstaw przeprowadzi Cię krok po kroku przez proces tworzenia nowego projektu, instalowania pakietów, pisania kodu i uruchamiania podstawowej aplikacji konsolowej. To podejście jest zalecane, jeśli chcesz zrozumieć wszystkie szczegóły związane z tworzeniem aplikacji łączącej się z usługą Azure Blob Storage. Jeśli wolisz zautomatyzować zadania wdrażania i rozpocząć od ukończonego projektu, wybierz pozycję Rozpocznij od szablonu.
Uwaga
Opcja Rozpocznij od szablonu używa interfejsu wiersza polecenia dla deweloperów platformy Azure do automatyzowania zadań wdrażania i zapewnia gotowy projekt na start. To podejście jest zalecane, jeśli chcesz eksplorować kod tak szybko, jak to możliwe bez przechodzenia przez zadania konfiguracji. Jeśli wolisz instrukcje krok po kroku dotyczące kompilowania aplikacji, wybierz pozycję Kompiluj od podstaw.
Rozpocznij pracę z biblioteką klienta usługi Azure Blob Storage dla języka Java, aby zarządzać obiektami blob i kontenerami.
W tym artykule wykonasz kroki, aby zainstalować pakiet i wypróbować przykładowy kod dla podstawowych zadań.
W tym artykule użyjesz Azure Developer CLI, aby wdrożyć zasoby Azure i uruchomić gotową aplikację konsolową, wykorzystując tylko kilka poleceń.
Napiwek
Jeśli pracujesz z zasobami usługi Azure Storage w aplikacji Spring, zalecamy rozważenie użycia Spring Cloud for Azure jako alternatywy. Spring Cloud Azure to projekt typu open source, który zapewnia bezproblemową integrację platformy Spring z usługami platformy Azure. Aby dowiedzieć się więcej na temat platformy Azure Spring Cloud i zapoznać się z przykładem użycia usługi Blob Storage, zobacz Przekazywanie pliku do obiektu blob usługi Azure Storage.
Dokumentacja referencyjna API | Kod źródłowy biblioteki | Pakiet (Maven) | Przykłady
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją — utwórz bezpłatne konto
- Konto usługi Azure Storage — tworzenie konta magazynu.
- Zestaw Java Development Kit (JDK) w wersji 8 lub nowszej
- Apache Maven
- Subskrypcja platformy Azure — utwórz jedną bezpłatnie
- Zestaw Java Development Kit (JDK) w wersji 8 lub nowszej
- Apache Maven
- Interfejs wiersza polecenia dla deweloperów platformy Azure
Konfigurowanie
Ta sekcja przeprowadzi Cię przez proces przygotowywania projektu do pracy z biblioteką klienta usługi Azure Blob Storage dla języka Java.
Tworzenie projektu
Utwórz aplikację Java o nazwie blob-quickstart.
W oknie konsoli (takim jak program PowerShell lub powłoka Bash) użyj narzędzia Maven, aby utworzyć nową aplikację konsolową z nazwą blob-quickstart. Wpisz następujące polecenie mvn , aby utworzyć "Hello world!" Projekt Java.
mvn archetype:generate ` --define interactiveMode=n ` --define groupId=com.blobs.quickstart ` --define artifactId=blob-quickstart ` --define archetypeArtifactId=maven-archetype-quickstart ` --define archetypeVersion=1.4
Dane wyjściowe generowania projektu powinny wyglądać mniej więcej tak:
[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] ------------------------------------------------------------------------ ```
Przejdź do nowo utworzonego folderu blob-quickstart .
cd blob-quickstart
Po stronie katalogu blob-quickstart utwórz inny katalog o nazwie dane. W tym folderze będą tworzone i przechowywane pliki danych obiektu blob.
mkdir data
Instalowanie pakietów
pom.xml
Otwórz plik w edytorze tekstów.
Dodaj azure-sdk-bom , aby uzyskać zależność od najnowszej wersji biblioteki. W poniższym fragmencie kodu zastąp {bom_version_to_target}
symbol zastępczy numerem wersji. Korzystanie z azure-sdk-bom pozwala na uniknięcie konieczności określania wersji poszczególnych zależności. Aby dowiedzieć się więcej na temat BOM, zobacz README BOM Azure SDK.
<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>
Następnie dodaj następujące elementy zależności do grupy zależności. Zależność azure-identity jest wymagana w przypadku połączeń bez hasła z usługami platformy Azure.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
Konfigurowanie struktury aplikacji
W katalogu projektu wykonaj kroki, aby utworzyć podstawową strukturę aplikacji:
- Przejdź do katalogu /src/main/java/com/blobs/quickstart
-
App.java
Otwórz plik w edytorze - Usuwanie wiersza
System.out.println("Hello world!");
- Dodaj niezbędne dyrektywy
import
Kod powinien przypominać następującą strukturę:
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
}
}
Po zainstalowaniu Azure Developer CLI możesz utworzyć konto magazynowe i uruchomić przykładowy kod za pomocą kilku poleceń. Projekt można uruchomić w lokalnym środowisku deweloperskim lub w usłudze DevContainer.
Inicjowanie szablonu interfejsu wiersza polecenia dewelopera platformy Azure i wdrażanie zasobów
W pustym katalogu wykonaj następujące kroki, aby zainicjować azd
szablon, aprowizować zasoby platformy Azure i rozpocząć pracę z kodem:
Sklonuj zasoby repozytorium szybkiego startu z usługi GitHub i zainicjuj szablon lokalnie:
azd init --template blob-storage-quickstart-java
Zostanie wyświetlony monit o podanie następujących informacji:
- Nazwa środowiska: ta wartość jest używana jako prefiks dla wszystkich zasobów platformy Azure utworzonych przez interfejs wiersza polecenia dewelopera platformy Azure. Nazwa musi być unikatowa we wszystkich subskrypcjach platformy Azure i musi mieć długość od 3 do 24 znaków. Nazwa może zawierać tylko cyfry i małe litery.
Zaloguj się do platformy Azure:
azd auth login
Aprowizuj i wdróż zasoby na platformie Azure:
azd up
Zostanie wyświetlony monit o podanie następujących informacji:
- Subskrypcja: Subskrypcja platformy Azure, do której są wdrażane Twoje zasoby.
- Lokalizacja: region świadczenia usługi Azure, w którym są wdrażane zasoby.
Ukończenie wdrożenia może potrwać kilka minut. Dane wyjściowe polecenia
azd up
zawierają nazwę nowo utworzonego konta przechowywania, którego będziesz potrzebować później do uruchomienia kodu.
Uruchamianie przykładowego kodu
Na tym etapie zasoby są wdrażane na platformie Azure, a kod jest prawie gotowy do uruchomienia. Wykonaj następujące kroki, aby zaktualizować nazwę konta przechowywania w kodzie i uruchomić przykładową aplikację konsolową:
-
Zaktualizuj nazwę konta przechowywania
- W katalogu lokalnym przejdź do katalogu blob-quickstart/src/main/java/com/blobs/quickstart .
- Otwórz plik o nazwie App.java w edytorze. Znajdź symbol zastępczy
<storage-account-name>
i zastąp go rzeczywistą nazwą konta magazynu utworzonego przez polecenieazd up
. - Zapisz zmiany.
-
Uruchom projekt:
- Przejdź do katalogu blob-quickstart zawierającego
pom.xml
plik. Skompiluj projekt przy użyciu następującegomvn
polecenia:mvn compile
- Spakuj skompilowany kod w formacie dystrybucyjnym:
mvn package
- Uruchom następujące
mvn
polecenie, aby wykonać aplikację:mvn exec:java
- Przejdź do katalogu blob-quickstart zawierającego
- Obserwuj wynik: Ta aplikacja tworzy plik testowy w lokalnym folderze danych i przesyła go do kontenera na koncie przechowywania. Przykład następnie wymienia obiekty blob w kontenerze i pobiera plik z nową nazwą, aby można było porównać stare i nowe pliki.
Aby dowiedzieć się więcej o sposobie działania przykładowego kodu, zobacz Przykłady kodu.
Po zakończeniu testowania kodu zobacz sekcję Czyszczenie zasobów , aby usunąć zasoby utworzone za azd up
pomocą polecenia .
Model obiektów
Usługa Azure Blob Storage jest zoptymalizowana pod kątem przechowywania ogromnych ilości danych bez struktury. Dane bez struktury nie są zgodne z określonym modelem lub definicją danych, takimi jak dane tekstowe lub binarne. Magazyn obiektów blob oferuje trzy typy zasobów:
- Konto magazynu
- Kontener na koncie magazynowym
- Obiekt blob w kontenerze
Na poniższym diagramie przedstawiono relacje między tymi zasobami.
Użyj następujących klas języka Java, aby wchodzić w interakcje z tymi zasobami:
-
BlobServiceClient:
BlobServiceClient
klasa umożliwia manipulowanie zasobami usługi Azure Storage i kontenerami obiektów blob. Konto magazynu zapewnia przestrzeń nazw najwyższego poziomu dla usługi Blob Service. -
BlobServiceClientBuilder: Klasa
BlobServiceClientBuilder
udostępnia płynne API konstruktora, które ułatwia konfigurację i tworzenie instancjiBlobServiceClient
. -
BlobContainerClient:
BlobContainerClient
klasa umożliwia manipulowanie kontenerami usługi Azure Storage i ich obiektami blob. -
BlobClient:
BlobClient
klasa umożliwia manipulowanie obiektami blob usługi Azure Storage. -
BlobItem:
BlobItem
klasa reprezentuje pojedyncze obiekty blob zwracane z wywołania funkcji listBlobs.
Przykłady kodu
Te przykładowe fragmenty kodu pokazują, jak wykonać następujące akcje za pomocą biblioteki klienta usługi Azure Blob Storage dla języka Java:
- Uwierzytelnij się w Azure i autoryzuj dostęp do danych blob
- Tworzenie kontenera
- Prześlij obiekty blob do kontenera
- Wyświetlanie listy obiektów blob w kontenerze
- Pobieranie obiektów blob
- Usuwanie kontenera
Ważne
Upewnij się, że masz poprawne zależności w pom.xml i niezbędne dyrektywy, aby przykłady kodu działały zgodnie z opisem w sekcji konfigurowania .
Uwaga
Szablon CLI dla deweloperów platformy Azure zawiera plik z przykładowym kodem, który jest już dostępny. Poniższe przykłady zawierają szczegółowe informacje dotyczące każdej części przykładowego kodu. Szablon implementuje zalecaną metodę uwierzytelniania bez hasła zgodnie z opisem w sekcji Uwierzytelnianie na platformie Azure . Metoda parametru połączenia jest wyświetlana jako alternatywa, ale nie jest używana w szablonie i nie zaleca się jej dla kodu produkcyjnego.
Uwierzytelnianie w Azure i autoryzacja dostępu do danych Blob
Żądania aplikacji do usługi Azure Blob Storage muszą być autoryzowane.
DefaultAzureCredential
Użycie klasy udostępnionej przez bibliotekę klienta tożsamości platformy Azure jest zalecanym podejściem do implementowania połączeń bez hasła z usługami platformy Azure w kodzie, w tym usługi Blob Storage.
Możesz również autoryzować żądania do usługi Azure Blob Storage przy użyciu klucza dostępu do konta. Należy jednak zachować ostrożność przy użyciu tego podejścia. Deweloperzy muszą być sumienni, aby nigdy nie ujawniać klucza dostępu w niezabezpieczonej lokalizacji. Każdy, kto ma klucz dostępu, może autoryzować żądania w odniesieniu do konta magazynowego i tym samym mieć dostęp do wszystkich danych.
DefaultAzureCredential
oferuje ulepszone korzyści związane z zarządzaniem i zabezpieczeniami za pośrednictwem klucza konta, aby umożliwić uwierzytelnianie bez hasła. Obie opcje przedstawiono w poniższym przykładzie.
DefaultAzureCredential
jest klasą dostarczaną przez bibliotekę klienta tożsamości platformy Azure dla języka Java.
DefaultAzureCredential
obsługuje wiele metod uwierzytelniania i określa, która metoda powinna być używana w czasie wykonywania. Takie podejście umożliwia aplikacji używanie różnych metod uwierzytelniania w różnych środowiskach (lokalnych i produkcyjnych) bez implementowania kodu specyficznego dla środowiska.
Kolejność i lokalizacje, w których DefaultAzureCredential
szuka poświadczeń, można znaleźć w przeglądzie biblioteki Azure Identity.
Na przykład aplikacja może uwierzytelniać się za pomocą poświadczeń logowania w Visual Studio Code podczas pracy lokalnej. Aplikacja może następnie użyć tożsamości zarządzanej po jej wdrożeniu na platformie Azure. Do tego przejścia nie są wymagane żadne zmiany kodu.
Przypisywanie ról do konta użytkownika usługi Microsoft Entra
Podczas tworzenia aplikacji lokalnie upewnij się, że konto użytkownika, które uzyskuje dostęp do danych obiektów blob, ma odpowiednie uprawnienia. Będziesz potrzebować Współautora danych obiektu Blob Storage, aby odczytywać i zapisywać dane obiektów blob. Aby przypisać sobie tę rolę, musisz mieć przypisaną rolę Administratora dostępu użytkowników lub inną rolę obejmującą akcję Microsoft.Authorization/roleAssignments/write . Role RBAC platformy Azure można przypisać użytkownikowi przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Więcej informacji na temat dostępnych zakresów przypisań ról można znaleźć na stronie przeglądu zakresu.
W tym scenariuszu przypiszesz uprawnienia do konta użytkownika w odniesieniu do konta magazynu, zgodnie z zasadą najniższych uprawnień. Ta praktyka zapewnia użytkownikom tylko minimalne wymagane uprawnienia i tworzy bezpieczniejsze środowiska produkcyjne.
W poniższym przykładzie do konta użytkownika zostanie przypisana rola Współautora danych obiektu blob Storage, która zapewnia zarówno dostęp do odczytu, jak i zapisu danych obiektów blob w twoim koncie magazynu.
Ważne
W większości przypadków propagacja przypisania roli na platformie Azure potrwa minutę lub dwie, ale w rzadkich przypadkach może upłynąć do ośmiu minut. Jeśli podczas pierwszego uruchomienia kodu wystąpią błędy uwierzytelniania, zaczekaj chwilę i spróbuj ponownie.
W portalu Azure znajdź konto przechowywania przy użyciu paska wyszukiwania lub nawigacji po lewej.
Na stronie przeglądu konta magazynowego wybierz pozycję Kontrola dostępu (IAM) z lewego menu.
Na stronie Kontrola dostępu (IAM) wybierz kartę Przypisania ról.
Wybierz + Dodaj z górnego menu, a następnie Dodaj przypisanie roli z wyświetlonego menu rozwijanego.
Użyj pola wyszukiwania, aby filtrować wyniki do żądanej roli. W tym przykładzie wyszukaj pozycję Współautor danych obiektu blob usługi Storage i wybierz pasujący wynik, a następnie wybierz pozycję Dalej.
W obszarze Przypisz dostęp do wybierz pozycję Użytkownik, grupa lub jednostka główna usługi, a następnie wybierz pozycję + Wybierz członków.
W oknie dialogowym wyszukaj nazwę użytkownika firmy Microsoft Entra (zazwyczaj adres e-mail user@domain ), a następnie wybierz pozycję Wybierz w dolnej części okna dialogowego.
Wybierz pozycję Przejrzyj i przypisz , aby przejść do ostatniej strony, a następnie ponownie przejrzyj i przypisz, aby ukończyć proces.
Zaloguj się i połącz kod aplikacji z platformą Azure przy użyciu opcji DefaultAzureCredential
Dostęp do danych na koncie magazynu można autoryzować, wykonując następujące czynności:
Upewnij się, że uwierzytelniasz się przy użyciu tego samego konta Microsoft Entra, któremu przypisałeś rolę na swoim koncie magazynu. Uwierzytelnianie można przeprowadzić za pomocą interfejsu wiersza polecenia platformy Azure, programu Visual Studio Code lub programu Azure PowerShell.
Zaloguj się do platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure przy użyciu następującego polecenia:
az login
Aby użyć
DefaultAzureCredential
, upewnij się, że zależność azure-identity jest dodana wpom.xml
:<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> </dependency>
Dodaj ten kod do
Main
metody . Gdy kod zostanie uruchomiony na lokalnej stacji roboczej, użyje poświadczeń dewelopera priorytetowego narzędzia, do którego logujesz się w celu uwierzytelnienia na platformie Azure, takiego jak interfejs wiersza polecenia platformy Azure lub program 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();
Pamiętaj, aby zaktualizować nazwę konta pamięci masowej w identyfikatorze URI
BlobServiceClient
. Nazwę konta magazynu można znaleźć na stronie przeglądu witryny Azure Portal.Uwaga
Po wdrożeniu na platformie Azure ten sam kod może służyć do autoryzowania żądań do usługi Azure Storage z aplikacji działającej na platformie Azure. Należy jednak włączyć tożsamość zarządzaną w aplikacji na platformie Azure. Następnie skonfiguruj konto magazynu, aby umożliwić tej tożsamości zarządzanej nawiązanie połączenia. Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania tego połączenia między usługami platformy Azure, zobacz samouczek "Uwierzytelnianie w aplikacjach hostowanych na platformie Azure".
Tworzenie kontenera
Utwórz nowy kontener w koncie magazynowym, wywołując metodę createBlobContainer na obiekcie blobServiceClient
. W tym przykładzie kod dołącza wartość identyfikatora GUID do nazwy kontenera, aby upewnić się, że jest on unikatowy.
Dodaj ten kod na końcu Main
metody:
// 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);
Aby dowiedzieć się więcej o tworzeniu kontenera i eksplorować więcej przykładów kodu, zobacz Tworzenie kontenera obiektów blob za pomocą języka Java.
Ważne
Nazwy kontenerów muszą być zapisane małymi literami. Aby uzyskać więcej informacji o nazewnictwie kontenerów i obiektów blob, zobacz temat Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych.
Przesyłanie blobów do kontenera
Załaduj obiekt blob do kontenera, wywołując metodę uploadFromFile. Przykładowy kod tworzy plik tekstowy w lokalnym katalogu danych w celu przekazania do kontenera.
Dodaj ten kod na końcu Main
metody:
// 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);
Aby dowiedzieć się więcej na temat przekazywania obiektów blob i eksplorowania dodatkowych przykładów kodu, zobacz Przekazywanie obiektu blob za pomocą języka Java.
Wyświetl listę blobów w kontenerze
Wyświetl listę blobów w kontenerze, wywołując metodę listBlobs. W tym przypadku do kontenera został dodany tylko jeden blob, więc operacja wyświetlania listy zwraca tylko ten jeden blob.
Dodaj ten kod na końcu Main
metody:
System.out.println("\nListing blobs...");
// List the blob(s) in the container.
for (BlobItem blobItem : blobContainerClient.listBlobs()) {
System.out.println("\t" + blobItem.getName());
}
Aby dowiedzieć się więcej na temat wyświetlania listy obiektów blob i eksplorowania większej liczby przykładów kodu, zobacz Wyświetlanie listy obiektów blob za pomocą języka Java.
Pobieranie blobów
Pobierz utworzony wcześniej obiekt blob, wywołując metodę downloadToFile. Przykładowy kod dodaje sufiks "DOWNLOAD" do nazwy pliku, aby zobaczyć oba pliki w lokalnym systemie plików.
Dodaj ten kod na końcu Main
metody:
// 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);
Aby dowiedzieć się więcej na temat pobierania obiektów blob i eksplorowania dodatkowych przykładów kodu, zobacz Pobieranie obiektu blob za pomocą języka Java.
Usuwanie kontenera
Poniższy kod czyści zasoby utworzone przez aplikację przez usunięcie całego kontenera przy użyciu metody delete . Usuwa również pliki lokalne utworzone przez aplikację.
Aplikacja wstrzymuje działanie, czekając na dane wejściowe użytkownika, wywołując System.console().readLine()
, zanim usunie obiekt blob, kontener i pliki lokalne. Jest to duża szansa na sprawdzenie, czy zasoby zostały utworzone poprawnie, zanim zostaną usunięte.
Dodaj ten kod na końcu Main
metody:
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");
Aby dowiedzieć się więcej o usuwaniu kontenera i poznać więcej przykładów kodu, zobacz Usuwanie i przywracanie kontenera obiektów blob za pomocą języka Java.
Uruchamianie kodu
Ta aplikacja tworzy plik testowy w folderze lokalnym i przekazuje go do usługi Blob Storage. W tym przykładzie zostają wymienione obiekty blob w kontenerze, a następnie plik jest pobierany z nową nazwą, aby można było porównać stary i nowy plik.
Wykonaj kroki, aby skompilować, spakować i uruchomić kod
- Przejdź do katalogu zawierającego
pom.xml
plik i skompiluj projekt przy użyciu następującegomvn
polecenia:mvn compile
- Spakuj skompilowany kod w formacie dystrybucyjnym:
mvn package
- Uruchom następujące
mvn
polecenie, aby wykonać aplikację:
Aby uprościć krok uruchamiania, możesz dodaćmvn exec:java -D exec.mainClass=com.blobs.quickstart.App -D exec.cleanupDaemonThreads=false
exec-maven-plugin
dopom.xml
i skonfigurować, jak pokazano poniżej:
Za pomocą tej konfiguracji można wykonać aplikację za pomocą następującego polecenia:<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>
mvn exec:java
Dane wyjściowe aplikacji są podobne do następujących przykładów (wartości UUID pominięte w celu zapewnienia czytelności):
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
Przed rozpoczęciem procesu oczyszczania sprawdź, czy folder danych zawiera dwa pliki. Można je porównać i zaobserwować, że są identyczne.
Czyszczenie zasobów
Po zweryfikowaniu plików i zakończeniu testowania naciśnij Enter , aby usunąć pliki testowe wraz z kontenerem utworzonym na koncie magazynu. Możesz również użyć interfejsu wiersza polecenia platformy Azure, aby usunąć zasoby.
Po zakończeniu pracy z przewodnikiem "Quickstart" możesz wyczyścić utworzone zasoby, uruchamiając następujące polecenie:
azd down
Zostanie wyświetlony monit o potwierdzenie usunięcia zasobów. Wprowadź , y
aby potwierdzić.