Az Azure Blob Storage és a Java használatának első lépései
Ez a cikk bemutatja, hogyan csatlakozhat az Azure Blob Storage-hoz a Java Azure Blob Storage ügyfélkódtárával. A csatlakozás után a fejlesztői útmutatók segítségével megtudhatja, hogyan működhet a kód a Blob Storage szolgáltatás tárolóin, blobokon és funkcióin.
Ha egy teljes példával szeretne kezdeni, tekintse meg a Java-hoz készült Azure Blob Storage ügyfélkódtár rövid útmutatóját.
API-referenciacsomag (Maven) | Kódtár forráskódminták | | Visszajelzés küldése |
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen
- Azure Storage-fiók – tárfiók létrehozása
- Java Development Kit (JDK) 8- vagy újabb verzió
- Ebben a példában az Apache Maven a projektkezeléshez használatos
A projekt beállítása
Feljegyzés
Ez a cikk a Maven buildelési eszközével hozza létre és futtatja a mintakódot. Más buildelési eszközök, például a Gradle is együttműködnek a Java Azure SDK-val.
A Maven használatával hozzon létre egy új konzolalkalmazást, vagy nyisson meg egy meglévő projektet. A csomagok telepítéséhez és a szükséges import
irányelvek hozzáadásához kövesse az alábbi lépéseket.
Csomagok telepítése
Nyissa meg a pom.xml
fájlt a szövegszerkesztőben. Telepítse a csomagokat a BOM-fájllal, vagy egy közvetlen függőséget is beleértve.
A BOM-fájl belefoglalása
Az azure-sdk-bom hozzáadása a kódtár legújabb verziójától való függőséghez. Az alábbi kódrészletben cserélje le a {bom_version_to_target}
helyőrzőt a verziószámra. Az Azure-sdk-bom használatával nem kell megadnia az egyes függőségek verzióját. A BOM-ról további információt az Azure SDK BOM README-ben talál.
<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>
Adja hozzá a következő függőségi elemeket a függőségek csoportjához. Az Azure-szolgáltatásokhoz való jelszó nélküli kapcsolatokhoz azure-identitásfüggőség szükséges.
<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>
Közvetlen függőség belefoglalása
A kódtár egy adott verziójától való függőség felvételéhez adja hozzá a közvetlen függőséget a projekthez:
<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>
Importálási irányelvek belefoglalása
Ezután nyissa meg a kódfájlt, és adja hozzá a szükséges import
irányelveket. Ebben a példában a következő irányelveket adjuk hozzá a App.java fájlhoz:
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.*;
Blob ügyféloldali kódtár adatai:
- com.azure.storage.blob: A szolgáltatáson, tárolókon és blobokon való működéshez használható elsődleges osztályokat (ügyfélobjektumokat) tartalmazza.
- com.azure.storage.blob.models: Segédprogramosztályokat, struktúrákat és számbavételi típusokat tartalmaz.
- com.azure.storage.blob.specializált: Olyan osztályokat tartalmaz, amelyekkel egy blobtípushoz tartozó műveleteket hajthat végre (például: hozzáfűző blobok).
Hozzáférés engedélyezése és csatlakozás a Blob Storage-hoz
Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozza létre a BlobServiceClient osztály egy példányát. A BlobServiceAsyncClient osztályt aszinkron programozáshoz is használhatja. Ez az objektum a kiindulási pont az adaterőforrások tárfiók szintjén való használatához. Használhatja a tárfiókon és annak tárolóin való működéshez. A szolgáltatásügyfél használatával tárolóügyfeleket vagy blobügyfeleket is létrehozhat, attól függően, hogy milyen erőforrással kell dolgoznia.
Az ügyfélobjektumok létrehozásáról és kezeléséről további információt az adaterőforrásokat kezelő ügyfélobjektumok létrehozása és kezelése című témakörben talál.
Az objektumokat BlobServiceClient
Microsoft Entra engedélyezési jogkivonat, fiókhozzáférési kulcs vagy közös hozzáférésű jogosultságkód (SAS) használatával engedélyezheti. Az optimális biztonság érdekében a Microsoft azt javasolja, hogy felügyelt identitásokkal használja a Microsoft Entra ID-t a blobadatokra vonatkozó kérelmek engedélyezéséhez. További információ: Blobok hozzáférésének engedélyezése a Microsoft Entra-azonosítóval.
A Microsoft Entra-azonosítóval való engedélyezéshez biztonsági tagot kell használnia. Az, hogy milyen típusú biztonsági tagra van szüksége, attól függ, hogy hol fut az alkalmazás. Útmutatóként használja az alábbi táblázatot:
Az alkalmazás futtatásának helye | Rendszerbiztonsági tag | Útmutató |
---|---|---|
Helyi gép (fejlesztés és tesztelés) | Szolgáltatásnév | Az alkalmazás regisztrálásához, a Microsoft Entra-csoport beállításához, a szerepkörök hozzárendeléséhez és a környezeti változók konfigurálásához lásd: Hozzáférés engedélyezése fejlesztői szolgáltatásnevek használatával. |
Helyi gép (fejlesztés és tesztelés) | Felhasználói azonosító | A Microsoft Entra-csoport beállításáról, a szerepkörök hozzárendeléséről és az Azure-ba való bejelentkezésről további információt a hozzáférés engedélyezése fejlesztői hitelesítő adatokkal című témakörben talál. |
Az Azure-ban üzemeltetve | Felügyelt identitás | A felügyelt identitás engedélyezéséről és a szerepkörök hozzárendeléséről az Azure által üzemeltetett alkalmazások hozzáférésének engedélyezése felügyelt identitással című témakörben olvashat. |
Az Azure-on kívül üzemeltetett (például helyszíni alkalmazások) | Szolgáltatásnév | Az alkalmazás regisztrálásához, szerepkörök hozzárendeléséhez és környezeti változók konfigurálásához lásd : Hozzáférés engedélyezése helyszíni alkalmazásokból egy alkalmazásszolgáltatás-egyszerű használatával |
Hozzáférés engedélyezése a DefaultAzureCredential használatával
A Blob Storage-hoz való hozzáférés és csatlakozás engedélyezésének egyszerű és biztonságos módja egy OAuth-jogkivonat beszerzése DefaultAzureCredential-példány létrehozásával. Ezt követően a hitelesítő adatok használatával létrehozhat egy BlobServiceClient objektumot.
Győződjön meg arról, hogy rendelkezik a megfelelő függőségekkel a pom.xml és a szükséges importálási irányelvekben, a projekt beállítása című szakaszban leírtak szerint.
Az alábbi példa a BlobServiceClientBuilder használatával DefaultAzureCredential
hoz létre objektumotBlobServiceClient
, és bemutatja, hogyan hozhat létre tároló- és blobügyfeleket, ha szükséges:
// 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>");
A JVM TTL konfigurálása DNS-névkeresésekhez
A Java virtuális gép (JVM) gyorsítótárazza a sikeres DNS-névkeresésekből származó válaszokat egy megadott időtartamra, más néven élettartamra (TTL). Számos JVM alapértelmezett TTL-értéke az -1
, ami azt jelenti, hogy a JVM határozatlan ideig gyorsítótárazza a választ, vagy amíg a JVM újra nem indul.
Mivel az Azure-erőforrások olyan DNS-névbejegyzéseket használnak, amelyek módosíthatók, javasoljuk, hogy állítsa a JVM TTL értékét 10 másodpercre. Ez a konfiguráció biztosítja, hogy egy erőforrás frissített IP-címe a következő DNS-lekérdezéssel legyen visszaadva.
A JVM-et használó összes alkalmazás TTL-értékének globális módosításához állítsa be a networkaddress.cache.ttl
tulajdonságot a java.security
fájlban.
networkaddress.cache.ttl=10
Java 8 esetén a java.security
fájl a $JAVA_HOME/jre/lib/security
könyvtárban található. Java 11 és újabb verziók esetén a fájl a $JAVA_HOME/conf/security
könyvtárban található.
Az alkalmazás fordítása
Amikor az Azure Blob Storage-ban adaterőforrásokkal való együttműködésre hoz létre alkalmazásokat, a kód elsősorban három erőforrástípussal dolgozik: tárfiókokkal, tárolókkal és blobokkal. Ha többet szeretne megtudni ezekről az erőforrástípusokról, az egymáshoz való viszonyukról és az alkalmazások erőforrásokkal való interakciójáról, olvassa el a Blob Storage-adaterőforrásokkal való interakciót ismertető témakört.
Az alábbi útmutatók bemutatják, hogyan férhet hozzá az adatokhoz, és hogyan hajthat végre konkrét műveleteket a Java-hoz készült Azure Storage-ügyfélkódtár használatával:
Útmutató | Leírás |
---|---|
Újrapróbálkozési szabályzat konfigurálása | Újrapróbálkozási szabályzatok implementálása az ügyfélműveletekhez. |
Blobok másolása | Blob másolása egyik helyről a másikra. |
Tároló létrehozása | Blobtárolók létrehozása. |
Felhasználódelegálási SAS létrehozása | Hozzon létre egy felhasználódelegálási SAS-t egy tárolóhoz vagy blobhoz. |
Blobbérletek létrehozása és kezelése | Blob zárolásának létrehozása és kezelése. |
Tárolóbérletek létrehozása és kezelése | Tároló zárolásának létrehozása és kezelése. |
Blobok törlése és visszaállítása | Blobok törlése, és ha engedélyezve van a helyreállítható törlés, állítsa vissza a törölt blobokat. |
Tárolók törlése és visszaállítása | Tárolók törlése, és ha engedélyezve van a helyreállítható törlés, állítsa vissza a törölt tárolókat. |
Blobok letöltése | Töltse le a blobokat sztringek, streamek és fájlelérési utak használatával. |
Blobok keresése címkékkel | Állítson be és kérjen le címkéket, valamint használjon címkéket a blobok kereséséhez. |
Blobok listázása | Blobok listázása különböző módokon. |
Tárolók listázása | Egy fiók tárolóinak listázása és a lista testreszabásához elérhető különféle lehetőségek. |
Tulajdonságok és metaadatok (blobok) kezelése | Blobok tulajdonságainak és metaadatainak lekérése és beállítása. |
Tulajdonságok és metaadatok (tárolók) kezelése | Tárolók tulajdonságainak és metaadatainak lekérése és beállítása. |
Adatátviteli teljesítmény finomhangolása | Az adatátviteli műveletek teljesítményének optimalizálása. |
Blob hozzáférési szintjének beállítása vagy módosítása | Blokkblob hozzáférési szintjének beállítása vagy módosítása. |
Blobok feltöltése | Megtudhatja, hogyan tölthet fel blobokat sztringek, streamek, fájlelérési utak és egyéb módszerek használatával. |