Udostępnij za pośrednictwem


Szybki start: biblioteka klienta usługi Azure Blob Storage dla języka Java

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 rozpoczyna się od ukończonego projektu. 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 interfejsu wiersza polecenia dla deweloperów platformy Azure, aby wdrożyć zasoby platformy Azure i uruchomić ukończoną aplikację konsolową z zaledwie kilkoma poleceniami.

Napiwek

Jeśli pracujesz z zasobami usługi Azure Storage w aplikacji Spring, zalecamy rozważenie platformy Spring Cloud platformy 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 interfejsu API — przykłady | pakietu kodu | źródłowego biblioteki (Maven) |

Wymagania wstępne

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.

  1. 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
    
  2. 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] ------------------------------------------------------------------------
        ```
    
    
  3. Przejdź do nowo utworzonego folderu blob-quickstart .

    cd blob-quickstart
    
  4. 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 element azure-sdk-bom , aby pobrać zależność od najnowszej wersji biblioteki. W poniższym fragmencie kodu zastąp {bom_version_to_target} symbol zastępczy numerem wersji. Korzystanie z zestawu azure-sdk-bom uniemożliwia określenie wersji poszczególnych zależności. Aby dowiedzieć się więcej na temat modelu BOM, zobacz ARTYKUŁ README zestawu Azure SDK 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>

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:

  1. Przejdź do katalogu /src/main/java/com/blobs/quickstart
  2. App.java Otwórz plik w edytorze
  3. Usuwanie wiersza System.out.println("Hello world!");
  4. Dodawanie niezbędnych import dyrektyw

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 interfejsu wiersza polecenia dla deweloperów platformy Azure możesz utworzyć konto magazynu 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, w ramach którego są wdrażane 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 magazynu, które będzie potrzebne 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 magazynu w kodzie i uruchomić przykładową aplikację konsolową:

  • Zaktualizuj nazwę konta magazynu:
    1. W katalogu lokalnym przejdź do katalogu blob-quickstart/src/main/java/com/blobs/quickstart .
    2. Otwórz plik o nazwie App.java w edytorze. <storage-account-name> Znajdź symbol zastępczy i zastąp go rzeczywistą nazwą konta magazynu utworzonego azd up przez polecenie .
    3. Zapisz zmiany.
  • Uruchom projekt:
    1. Przejdź do katalogu blob-quickstart zawierającego pom.xml plik. Skompiluj projekt przy użyciu następującego mvn polecenia:
      mvn compile
      
    2. Spakuj skompilowany kod w formacie dystrybucyjnym:
      mvn package
      
    3. Uruchom następujące mvn polecenie, aby wykonać aplikację:
      mvn exec:java
      
  • Obserwuj dane wyjściowe: Ta aplikacja tworzy plik testowy w lokalnym folderze danych i przekazuje go do kontenera na koncie magazynu. W tym przykładzie wymieniono obiekty blob w kontenerze i pobraliśmy 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 magazynu
  • Obiekt blob w kontenerze

Na poniższym diagramie przedstawiono relacje między tymi zasobami.

Diagram architektury magazynu obiektów blob

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: BlobServiceClientBuilder klasa udostępnia płynny interfejs API konstruktora, który ułatwia konfigurację i tworzenie wystąpień BlobServiceClient obiektów.
  • 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:

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 interfejsu wiersza polecenia dla deweloperów platformy Azure zawiera plik z przykładowym kodem już w miejscu. 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 parametry połączenia jest wyświetlana jako alternatywa, ale nie jest używana w szablonie i nie jest zalecana dla kodu produkcyjnego.

Uwierzytelnianie na platformie Azure i autoryzacja dostępu do danych obiektów 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 względem konta magazynu i efektywnie ma 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 można znaleźć poświadczenia, można znaleźć w przeglądzie biblioteki tożsamości platformy Azure.

Na przykład aplikacja może uwierzytelniać się przy użyciu poświadczeń logowania programu Visual Studio Code przy użyciu polecenia podczas opracowywania lokalnego. 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 usługi 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 zakresie konta magazynu, aby postępować 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ółautor danych obiektu blob usługi Storage, która zapewnia zarówno dostęp do odczytu, jak i zapisu do danych obiektów blob na 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.

  1. W witrynie Azure Portal znajdź konto magazynu przy użyciu głównego paska wyszukiwania lub nawigacji po lewej stronie.

  2. Na stronie przeglądu konta magazynu wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami) z menu po lewej stronie.

  3. Na stronie Kontrola dostępu (Zarządzanie dostępem i tożsamościami) wybierz kartę Przypisania ról.

  4. Wybierz pozycję + Dodaj z górnego menu, a następnie pozycję Dodaj przypisanie roli z wyświetlonego menu rozwijanego.

    Zrzut ekranu przedstawiający sposób przypisywania roli.

  5. 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.

  6. W obszarze Przypisz dostęp do wybierz pozycję Użytkownik, grupa lub jednostka usługi, a następnie wybierz pozycję + Wybierz członków.

  7. 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.

  8. 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:

  1. Upewnij się, że uwierzytelniasz się przy użyciu tego samego konta Microsoft Entra, do którego przypisano rolę na 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
    
  2. Aby użyć DefaultAzureCredentialpolecenia , upewnij się, że zależność azure-identity jest dodawana w pliku pom.xml:

    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-identity</artifactId>
    </dependency>
    
  3. 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();
    
  4. Pamiętaj, aby zaktualizować nazwę konta magazynu w identyfikatorze URI elementu BlobServiceClient. Nazwę konta magazynu można znaleźć na stronie przeglądu witryny Azure Portal.

    Zrzut ekranu przedstawiający sposób znajdowania nazwy konta magazynu.

    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ć nawiązywanie połączenia z tożsamością zarządzaną. Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania tego połączenia między usługami platformy Azure, zobacz samouczek Auth from Azure-hosted apps (Uwierzytelnianie z poziomu aplikacji hostowanych na platformie Azure).

Tworzenie kontenera

Utwórz nowy kontener na koncie magazynu, wywołując metodę createBlobContainer w blobServiceClient obiekcie . 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.

Przekazywanie obiektów blob do kontenera

Przekaż 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świetlanie listy obiektów blob w kontenerze

Wyświetl listę obiektów blob w kontenerze, wywołując metodę listBlobs . W tym przypadku do kontenera został dodany tylko jeden obiekt blob, więc operacja wyświetlania listy zwraca tylko ten jeden obiekt 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 obiektów blob

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 dane wejściowe użytkownika przez wywołanie System.console().readLine() metody przed usunięciem obiektu blob, kontenera i plików lokalnych. 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 wymieniono obiekty blob w kontenerze i pobraliśmy plik z nową nazwą, aby można było porównać stare i nowe pliki.

Wykonaj kroki, aby skompilować, spakować i uruchomić kod

  1. Przejdź do katalogu zawierającego pom.xml plik i skompiluj projekt przy użyciu następującego mvn polecenia:
    mvn compile
    
  2. Spakuj skompilowany kod w formacie dystrybucyjnym:
    mvn package
    
  3. Uruchom następujące mvn polecenie, aby wykonać aplikację:
    mvn exec:java -D exec.mainClass=com.blobs.quickstart.App -D exec.cleanupDaemonThreads=false
    
    Aby uprościć krok uruchamiania, możesz dodać exec-maven-plugin element i pom.xml skonfigurować go, jak pokazano poniżej:
    <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>
    
    Za pomocą tej konfiguracji można wykonać aplikację za pomocą następującego polecenia:
    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ź folder danych dla dwóch plików. 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 Szybki start 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ć.

Następny krok