Megosztás a következőn keresztül:


Blobtulajdonságok és metaadatok kezelése Java használatával

A blobok az általuk tárolt adatokon kívül támogatják a rendszer tulajdonságait és a felhasználó által definiált metaadatokat. Ez a cikk bemutatja, hogyan kezelheti a rendszertulajdonságokat és a felhasználó által definiált metaadatokat a Java Azure Storage ügyfélkódtárával.

Előfeltételek

Saját környezet beállítása

Ha nem rendelkezik meglévő projekttel, ez a szakasz bemutatja, hogyan állíthat be egy projektet a Java Azure Blob Storage ügyfélkódtárával való együttműködésre. További információ: Az Azure Blob Storage és a Java használatának első lépései.

A jelen cikkben szereplő példakódok használatához kövesse az alábbi lépéseket a projekt beállításához.

Feljegyzés

Ez a cikk a Maven buildelési eszközével hozza létre és futtatja a példakódot. Más buildelési eszközök, például a Gradle is együttműködnek a Java Azure SDK-val.

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.

Importálási utasítások hozzáadása

Adja hozzá a következő import-utasításokat:

import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;

import java.util.*;

Engedélyezés

Az engedélyezési mechanizmusnak rendelkeznie kell a tárolótulajdonságok vagy metaadatok használatához szükséges engedélyekkel. A Microsoft Entra-azonosítóval való engedélyezéshez (ajánlott) az Azure RBAC beépített szerepkörű Storage Blob-adatolvasóra vagy annál magasabbra van szüksége a lekérési műveletekhez, a tárolási blobadatok közreműködője pedig a beállított műveletekhez. További információért tekintse meg a Blob tulajdonságainak beállítása (REST API), a Blob tulajdonságainak lekérése (REST API), a Blob-metaadatok beállítása (REST API) vagy a Blob-metaadatok lekérése (REST API) engedélyezési útmutatóját.

Ügyfélobjektum létrehozása

Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozzon létre egy BlobServiceClient-példányt.

Az alábbi példa a BlobServiceClientBuilder használatával DefaultAzureCredentialhoz 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>");

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.

Tudnivalók a tulajdonságokról és a metaadatokról

  • Rendszertulajdonságok: A rendszertulajdonságok minden Blob Storage-erőforráson léteznek. Ezek némelyike olvasható vagy beállítható, míg mások írásvédettek. A borítók alatt egyes rendszertulajdonságok megfelelnek bizonyos szabványos HTTP-fejléceknek. A Java-hoz készült Azure Storage-ügyfélkódtár fenntartja ezeket a tulajdonságokat.

  • Felhasználó által definiált metaadatok: A felhasználó által definiált metaadatok egy vagy több, Blob Storage-erőforráshoz megadott név-érték párból állnak. Metaadatok használatával további értékeket tárolhat az erőforrással. A metaadat-értékek csak saját célra szolgálnak, és nem befolyásolják az erőforrás viselkedését.

    A metaadat-név/érték párok érvényes HTTP-fejlécek, és be kell tartaniuk a HTTP-fejlécekre vonatkozó összes korlátozást. A metaadatok elnevezési követelményeiről további információt a Metaadatnevek című témakörben talál.

Feljegyzés

A blobindex-címkék emellett lehetővé teszik a felhasználó által meghatározott kulcs-/értékattribútumok tárolását egy Azure Blob Storage-erőforrás mellett. Bár a metaadatokhoz hasonlóan csak a blobindexek címkéi lesznek automatikusan indexelve, és a natív blobszolgáltatás kereshetővé teszi. A metaadatok csak akkor indexelhetők és kérdezhetők le, ha nem használ külön szolgáltatást, például az Azure Search szolgáltatást.

A funkcióval kapcsolatos további információkért tekintse meg az Azure Blob Storage-adatok blobindexekkel való kezelését és keresését ismertető témakört.

Tulajdonságok beállítása és lekérése

A blob tulajdonságainak beállításához használja a következő módszert:

Az alábbi példakód egy blob rendszer- és ContentLanguage rendszertulajdonságainak beállítására szolgálContentType.

A nem explicit módon beállított tulajdonságok törlődnek. Az alábbi példakód először lekéri a blob meglévő tulajdonságait, majd azokkal tölti ki a nem frissített fejléceket.

public void setBlobProperties(BlobClient blobClient) {
    BlobProperties properties = blobClient.getProperties();

    // Set the ContentLanguage and ContentType headers, and populate the remaining
    // headers from the existing properties
    BlobHttpHeaders blobHeaders = new BlobHttpHeaders()
            .setContentLanguage("en-us")
            .setContentType("text/plain")
            .setCacheControl(properties.getCacheControl())
            .setContentDisposition(properties.getContentDisposition())
            .setContentEncoding(properties.getContentEncoding())
            .setContentMd5(properties.getContentMd5());

    blobClient.setHttpHeaders(blobHeaders);
    System.out.println("Set HTTP headers completed");
}

Egy blob tulajdonságainak lekéréséhez használja a következő módszert:

Az alábbi példakód lekéri egy blob rendszertulajdonságait, és megjeleníti az értékek egy részét:

public void getBlobProperties(BlobClient blobClient) {
    BlobProperties properties = blobClient.getProperties();

    System.out.printf("BlobType: %s%n", properties.getBlobType());
    System.out.printf("BlobSize: %d%n", properties.getBlobSize());
    System.out.printf("ContentLanguage: %s%n", properties.getContentLanguage());
    System.out.printf("ContentType: %s%n", properties.getContentType());
}

Metaadatok beállítása és lekérése

A metaadatokat egy vagy több név-érték párként is megadhatja egy blob- vagy tárolóerőforráson. Metaadatok beállításához küldjön egy név-érték párokat tartalmazó térképobjektumot a következő módszerrel:

Az alábbi példakód egy blob metaadatait állítja be:

public void addBlobMetadata(BlobClient blobClient) {
    Map<String, String> metadata = new HashMap<String, String>();
    metadata.put("docType", "text");
    metadata.put("category", "reference");

    try {
        blobClient.setMetadata(metadata);
        System.out.printf("Set metadata completed %n");
    } catch (UnsupportedOperationException error) {
        System.out.printf("Failure while setting metadata %n");
    }
}

A metaadatok lekéréséhez hívja meg a blob getProperties metódusát a metaadat-gyűjtemény feltöltéséhez, majd olvassa el az értékeket az alábbi példában látható módon. A getProperties metódus a blobtulajdonságokat és a metaadatokat a Blob tulajdonságainak lekérése művelet és a Blob metaadatok lekérése művelet meghívásával kéri le.

Az alábbi kódpéldában metaadatok olvashatók egy blobon, és kinyomtatja az egyes kulcs-érték párokat:

public void readBlobMetadata(BlobClient blobClient) {
    // Get blob properties and metadata
    BlobProperties properties = blobClient.getProperties();

    System.out.printf("Blob metadata: %n");
    properties.getMetadata().entrySet().forEach(metadataItem -> {
        System.out.printf(" %s = %s%n", metadataItem.getKey(), metadataItem.getValue());
    });
}

Források

A rendszertulajdonságok és a felhasználó által definiált metaadatok Java-hoz készült Azure Blob Storage-ügyfélkódtár használatával történő kezelésével kapcsolatos további információkért tekintse meg az alábbi erőforrásokat.

Kódminták

REST API-műveletek

Az Azure SDK for Java olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismert Java-paradigmákon keresztül. A rendszertulajdonságok és a felhasználó által definiált metaadatok kezelésére szolgáló ügyfélkódtár-metódusok a következő REST API-műveleteket használják:

Ügyfélkódtár erőforrásai