Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak nawiązać połączenie z usługą Azure Blob Storage przy użyciu biblioteki klienta usługi Azure Blob Storage dla języka Java. Po nawiązaniu połączenia skorzystaj z przewodników dla deweloperów , aby dowiedzieć się, jak kod może działać na kontenerach, obiektach blob i funkcjach usługi Blob Storage.
Jeśli chcesz zacząć od kompletnego przykładu, zobacz Szybki start: biblioteka klienta usługi Azure Blob Storage dla języka Java.
Referencje API | Pakiet (Maven) | Kod źródłowy biblioteki | Przykłady | Prześlij opinię
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz jedną bezpłatnie
- Konto usługi Azure Storage — utwórz konto magazynowe
- Zestaw Java Development Kit (JDK) w wersji 8 lub nowszej
- Narzędzie Apache Maven jest używane do zarządzania projektami w tym przykładzie
konfigurowanie projektu
Uwaga
W tym artykule użyto narzędzia kompilacji Maven do skompilowania i uruchomienia przykładowego kodu. Inne narzędzia kompilacji, takie jak Gradle, współpracują również z zestawem Azure SDK dla języka Java.
Użyj narzędzia Maven, aby utworzyć nową aplikację konsolową lub otworzyć istniejący projekt. Wykonaj następujące kroki, aby zainstalować pakiety i dodać niezbędne import dyrektywy.
Instalowanie pakietów
pom.xml Otwórz plik w edytorze tekstów. Zainstaluj pakiety, dołączając plik BOM lub uwzględniając bezpośrednią zależność.
Uwzględnij plik BOM
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 uniknąć konieczności określania wersji każdej poszczególnej zależności. Aby dowiedzieć się więcej na temat BOM, zobacz plik 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>
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-storage-common</artifactId>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
Uwzględnij zależność bezpośrednią
Aby podjąć zależność od określonej wersji biblioteki, dodaj bezpośrednią zależność do projektu:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>{package_version_to_target}</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-common</artifactId>
<version>{package_version_to_target}</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>{package_version_to_target}</version>
</dependency>
Uwzględnij dyrektywy importu
Następnie otwórz plik kodu i dodaj niezbędne import dyrektywy. W tym przykładzie dodamy następujące dyrektywy w pliku App.java :
import com.azure.core.credential.*;
import com.azure.identity.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.specialized.*;
import com.azure.storage.common.*;
Informacje dotyczące biblioteki klienta usług Blob
- com.azure.storage.blob: zawiera klasy podstawowe (obiekty klienta), których można użyć do działania w usłudze, kontenerach i obiektach blob.
- com.azure.storage.blob.models: zawiera klasy narzędzi, struktury i typy wyliczenia.
- com.azure.storage.blob.specialized: zawiera klasy, których można użyć do wykonywania operacji specyficznych dla typu bloba (na przykład: blobów typu append).
Autoryzowanie dostępu i nawiązywanie połączenia z usługą Blob Storage
Aby połączyć aplikację z usługą Blob Storage, utwórz wystąpienie klasy BlobServiceClient . Można również użyć klasy BlobServiceAsyncClient do programowania asynchronicznego. Ten obiekt jest punktem wyjścia do interakcji z zasobami danych na poziomie konta przechowywania. Można go użyć do zarządzania kontem magazynu i jego kontenerami. Możesz również użyć klientów usług, aby utworzyć klientów usług kontenerowych lub klientów danych blob, w zależności od zasobu, z którym chcesz pracować.
Aby dowiedzieć się więcej na temat tworzenia obiektów klienta i zarządzania nimi, zobacz Tworzenie obiektów klienta korzystających z zasobów danych i zarządzanie nimi.
Obiekt BlobServiceClient można autoryzować, używając tokenu autoryzacji Microsoft Entra, klucza dostępu do konta lub sygnatury dostępu współdzielonego (SAS). Aby uzyskać optymalne zabezpieczenia, firma Microsoft zaleca używanie Microsoft Entra ID z tożsamościami zarządzanymi w celu autoryzowania żądań względem danych blob. Aby uzyskać więcej informacji, zobacz Autoryzowanie dostępu do obiektów blob przy użyciu identyfikatora Entra firmy Microsoft.
Aby autoryzować za pomocą identyfikatora Entra firmy Microsoft, musisz użyć podmiotu zabezpieczeń. To, jakiego typu podmiot zabezpieczeń potrzebujesz, zależy od miejsca, w którym działa Twoja aplikacja. Skorzystaj z poniższej tabeli jako przewodnika:
| Gdzie działa aplikacja | Podmiot bezpieczeństwa | Wskazówki |
|---|---|---|
| Maszyna lokalna (programowanie i testowanie) | Główna usługa | Aby dowiedzieć się, jak zarejestrować aplikację, skonfigurować grupę Microsoft Entra, przypisać role i skonfigurować zmienne środowiskowe, zobacz Autoryzowanie dostępu przy użyciu kont przywilejów dla deweloperów. |
| Maszyna lokalna (programowanie i testowanie) | Tożsamość użytkownika | Aby dowiedzieć się, jak skonfigurować grupę entra firmy Microsoft, przypisać role i zalogować się na platformie Azure, zobacz Autoryzowanie dostępu przy użyciu poświadczeń dewelopera. |
| Hostowane na platformie Azure | Tożsamość zarządzana | Aby dowiedzieć się, jak włączyć tożsamość zarządzaną i przypisać role, zobacz Autoryzowanie dostępu z aplikacji hostowanych na platformie Azure przy użyciu tożsamości zarządzanej. |
| Hostowane poza platformą Azure (na przykład aplikacje lokalne) | Główna usługa | Aby dowiedzieć się, jak zarejestrować aplikację, przypisać role i skonfigurować zmienne środowiskowe, zobacz Autoryzowanie dostępu z aplikacji lokalnych przy użyciu jednostki usługi aplikacji |
Autoryzowanie dostępu z użyciem DefaultAzureCredential
Łatwym i bezpiecznym sposobem autoryzowania dostępu i nawiązywania połączenia z usługą Blob Storage jest uzyskanie tokenu OAuth przez utworzenie wystąpienia DefaultAzureCredential . Następnie możesz użyć tego poświadczenia, aby utworzyć obiekt BlobServiceClient .
Upewnij się, że masz poprawne zależności w pom.xml i niezbędne dyrektywy importu, zgodnie z opisem w temacie Konfigurowanie projektu.
Poniższy przykład używa BlobServiceClientBuilder do zbudowania obiektu BlobServiceClient przy użyciu DefaultAzureCredential i pokazuje, jak w razie potrzeby utworzyć klienty kontenerów i obiektów blob:
// 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(new DefaultAzureCredentialBuilder().build())
.buildClient();
// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
.getBlobContainerClient("<container-name>");
// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
.getBlobClient("<blob-name>");
Skonfiguruj TTL JVM dla rozpoznawania nazw DNS
Maszyna Wirtualna Java (JVM) buforuje odpowiedzi z pomyślnych wyszukiwań nazw DNS przez określony czas, znany jako czas życia (TTL). Domyślna wartość czasu życia (TTL) dla wielu maszyn wirtualnych JVM to -1, co oznacza, że JVM buforuje odpowiedź na czas nieokreślony lub do momentu ponownego uruchomienia maszyny wirtualnej JVM.
Ponieważ zasoby platformy Azure używają wpisów nazw DNS, które mogą ulec zmianie, zalecamy ustawienie wartości TTL dla JVM na 10 sekund. Ta konfiguracja gwarantuje, że zaktualizowany adres IP zasobu zostanie zwrócony przy użyciu następnego zapytania DNS.
Aby zmienić wartość TTL na poziomie globalnym dla wszystkich aplikacji używających maszyny wirtualnej Java, ustaw właściwość networkaddress.cache.ttl w pliku java.security.
networkaddress.cache.ttl=10
W przypadku języka Java 8 java.security plik znajduje się w $JAVA_HOME/jre/lib/security katalogu . W przypadku języka Java 11 lub nowszego $JAVA_HOME/conf/security plik znajduje się w katalogu .
Kompilowanie aplikacji
Podczas tworzenia aplikacji do pracy z zasobami danych w usłudze Azure Blob Storage kod wchodzi głównie w interakcję z trzema typami zasobów: kontami magazynu, kontenerami i obiektami blob. Aby dowiedzieć się więcej o tych typach zasobów, sposobie ich powiązania ze sobą i sposobie interakcji aplikacji z zasobami, zobacz Omówienie sposobu interakcji aplikacji z zasobami danych usługi Blob Storage.
W poniższych przewodnikach przedstawiono sposób uzyskiwania dostępu do danych i wykonywania określonych akcji przy użyciu biblioteki klienta usługi Azure Storage dla języka Java:
| Przewodnik | Description |
|---|---|
| Konfigurowanie zasad ponawiania prób | Zaimplementuj zasady ponawiania dla operacji klienta. |
| Kopiowanie obiektów blob | Skopiuj plik blob z jednej lokalizacji do innej. |
| Tworzenie kontenera | Utwórz kontenery obiektów blob. |
| Utwórz token delegowania użytkownika | Utwórz sygnaturę SAS delegowania użytkownika dla zasobów kontenera lub blobu. |
| Tworzenie i zarządzanie dzierżawami obiektów blob | Ustanów blokadę na blobie i zarządzaj nią. |
| Tworzenie dzierżaw kontenerów i zarządzanie nimi | Ustanawianie blokady kontenera i zarządzanie nią. |
| Usuwanie i przywracanie blobów | Usuń obiekty blob, a jeśli włączono miękkie usuwanie, przywróć usunięte obiekty blob. |
| Usuwanie i przywracanie kontenerów | Usuń kontenery, a jeśli włączono usuwanie nietrwałe, przywróć usunięte kontenery. |
| Pobierz obiekty blob | Pobierz obiekty blob przy użyciu ciągów, strumieni i ścieżek plików. |
| Znajdowanie obiektów blob przy użyciu tagów | Ustawiaj i pobieraj tagi oraz używaj tagów do znajdowania blobów. |
| Wyświetlanie listy obiektów blob | Wyświetlanie listy obiektów blob na różne sposoby. |
| Lista kontenerów | Wyświetlanie listy kontenerów na koncie i różnych dostępnych opcji dostosowywania listy. |
| Zarządzanie właściwościami i metadanymi (blobs) | Pobieranie i ustawianie właściwości i metadanych dla obiektów blob. |
| Zarządzanie właściwościami i metadanymi (kontenerami) | Pobieranie i ustawianie właściwości i metadanych dla kontenerów. |
| Dostrajanie wydajności na potrzeby transferów danych | Optymalizowanie wydajności operacji transferu danych. |
| Ustawianie lub zmienianie warstwy dostępu obiektu blob | Ustaw lub zmień warstwę dostępu dla obiektu typu block blob. |
| Przekazywanie obiektów blob | Dowiedz się, jak ładować obiekty typu blob przy użyciu ciągów, strumieni, ścieżek plików i innych metod. |