Správa vlastností a metadat objektů blob pomocí Javy
Kromě dat, která obsahují, podporují objekty blob systémové vlastnosti a uživatelsky definovaná metadata. Tento článek ukazuje, jak spravovat vlastnosti systému a uživatelsky definovaná metadata pomocí klientské knihovny azure Storage pro Javu.
Požadavky
- Předplatné Azure – vytvoření bezplatného předplatného
- Účet úložiště Azure – Vytvoření účtu úložiště
- Sada Java Development Kit (JDK) verze 8 nebo novější (pro zajištění co nejlepšího prostředí doporučujeme verzi 17)
- Apache Maven se používá pro řízení projektů v tomto příkladu.
Nastavení prostředí
Pokud nemáte existující projekt, v této části se dozvíte, jak nastavit projekt pro práci s klientskou knihovnou Azure Blob Storage pro Javu. Další informace najdete v tématu Začínáme se službou Azure Blob Storage a Javou.
Pokud chcete pracovat s příklady kódu v tomto článku, nastavte projekt pomocí následujícího postupu.
Poznámka:
Tento článek používá nástroj pro sestavení Maven k sestavení a spuštění ukázkového kódu. Další nástroje sestavení, jako je Gradle, také pracují se sadou Azure SDK pro Javu.
Instalace balíčků
Otevřete soubor v textovém pom.xml
editoru. Nainstalujte balíčky zahrnutím souboru kusovníku nebo zahrnutím přímé závislosti.
Přidání příkazů importu
Přidejte následující příkazy import
:
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.util.*;
Autorizace
Autorizační mechanismus musí mít potřebná oprávnění pro práci s vlastnostmi kontejneru nebo metadaty. K autorizaci pomocí Microsoft Entra ID (doporučeno) potřebujete k operacím získání integrovanou roli Storage Blob Data Reader nebo vyšší roli Azure RBAC a přispěvatel dat objektů blob služby Storage nebo vyšší pro nastavené operace. Další informace najdete v pokynech k autorizaci k nastavení vlastností objektů blob (REST API), získání vlastností objektů blob (REST API), nastavení metadat objektů blob (REST API) nebo získání metadat objektů blob (REST API).
Vytvoření objektu klienta
Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte instanci BlobServiceClient.
Následující příklad používá BlobServiceClientBuilder k sestavení BlobServiceClient
objektu pomocí DefaultAzureCredential
a ukazuje, jak vytvořit kontejner a klienty objektů blob v případě potřeby:
// 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>");
Další informace o vytváření a správě klientských objektů najdete v tématu Vytváření a správa klientských objektů, které pracují s datovými prostředky.
O vlastnostech a metadatech
Systémové vlastnosti: Systémové vlastnosti existují pro každý prostředek úložiště objektů blob. Některé z nich můžou být přečtené nebo nastavené, zatímco jiné jsou jen pro čtení. Pod popisky některé systémové vlastnosti odpovídají určitým standardním hlavičkám HTTP. Klientská knihovna Azure Storage pro Javu tyto vlastnosti udržuje za vás.
Uživatelsky definovaná metadata: Uživatelsky definovaná metadata se skládají z jednoho nebo více párů název-hodnota, které zadáte pro prostředek úložiště objektů blob. Metadata můžete použít k uložení dalších hodnot s prostředkem. Hodnoty metadat jsou určené jenom pro vaše vlastní účely a nemají vliv na chování prostředku.
Páry názvů a hodnot metadat jsou platné hlavičky HTTP a měly by dodržovat všechna omezení, která se řídí hlavičkami HTTP. Další informace opožadavch
Poznámka:
Značky indexu objektů blob také poskytují možnost ukládat libovolné uživatelem definované atributy klíče a hodnoty společně s prostředkem úložiště objektů blob v Azure. Podobně jako metadata se automaticky indexují a prohledávají nativní službou blob pouze značky indexu objektů blob. Metadata nelze indexovat a dotazovat, pokud nevyužíváte samostatnou službu, jako je Azure Search.
Další informace o této funkci najdete v tématu Správa a vyhledání dat ve službě Azure Blob Storage pomocí indexu objektů blob.
Nastavení a načtení vlastností
K nastavení vlastností objektu blob použijte následující metodu:
Následující příklad kódu nastaví ContentType
vlastnosti a ContentLanguage
vlastnosti systému v objektu blob.
Všechny vlastnosti, které nejsou explicitně nastaveny, jsou vymazány. Následující příklad kódu nejprve získá existující vlastnosti objektu blob a pak je použije k naplnění hlaviček, které se neaktualizují.
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");
}
K načtení vlastností objektu blob použijte následující metodu:
Následující příklad kódu získá systémové vlastnosti objektu blob a zobrazí některé hodnoty:
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());
}
Nastavení a načtení metadat
Metadata můžete zadat jako jeden nebo více párů název-hodnota v objektu blob nebo prostředku kontejneru. Pokud chcete nastavit metadata, pomocí následující metody odešlete objekt Map obsahující páry name-value:
Následující příklad kódu nastaví metadata objektu blob:
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");
}
}
Pokud chcete načíst metadata, zavolejte v objektu blob metodu getProperties , která naplní kolekci metadat a pak přečte hodnoty, jak je znázorněno v následujícím příkladu. Metoda getProperties
načte vlastnosti objektu blob a metadata voláním operace Get Blob Properties a Get Blob Metadata operace.
Následující příklad kódu načte metadata objektu blob a vytiskne jednotlivé páry klíč/hodnota:
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());
});
}
Zdroje informací
Další informace o správě systémových vlastností a uživatelsky definovaných metadat pomocí klientské knihovny služby Azure Blob Storage pro Javu najdete v následujících zdrojích informací.
Ukázky kódu
Operace rozhraní REST API
Sada Azure SDK pro Javu obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat Javy. Metody klientské knihovny pro správu systémových vlastností a uživatelsky definovaných metadat používají následující operace rozhraní REST API:
- Nastavení vlastností objektu blob (REST API)
- Získání vlastností objektu blob (REST API)
- Nastavení metadat objektů blob (REST API)
- Získání metadat objektů blob (REST API)
Prostředky klientské knihovny
Související obsah
- Tento článek je součástí příručky pro vývojáře služby Blob Storage pro Javu. Další informace najdete v úplném seznamu článků příručky pro vývojáře na webu Sestavení aplikace v Javě.