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

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

  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. 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
    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. Znajdź symbol zastępczy <storage-account-name> i zastąp go rzeczywistą nazwą konta magazynu utworzonego przez polecenie azd up.
    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 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.

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: Klasa BlobServiceClientBuilder udostępnia płynne API konstruktora, które ułatwia konfigurację i tworzenie instancji BlobServiceClient.
  • 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 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.

  1. W portalu Azure znajdź konto przechowywania przy użyciu paska wyszukiwania lub nawigacji po lewej.

  2. Na stronie przeglądu konta magazynowego wybierz pozycję Kontrola dostępu (IAM) z lewego menu.

  3. Na stronie Kontrola dostępu (IAM) wybierz kartę Przypisania ról.

  4. Wybierz + Dodaj z górnego menu, a następnie 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 główna 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, 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
    
  2. Aby użyć DefaultAzureCredential, upewnij się, że zależność azure-identity jest dodana w 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 pamięci masowej w identyfikatorze URI BlobServiceClient. Nazwę konta magazynu można znaleźć na stronie przeglądu witryny Azure Portal.

    Zrzut ekranu pokazujący, jak znaleźć nazwę konta pamięci.

    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

  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 do pom.xml i skonfigurować, 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ź, 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ć.

Następny krok