Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Prerequisites
- 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.
Note
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 BOM nebo zahrnutím přímé závislosti.
Přidejte příkazy importu
Přidejte následující import příkazy:
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.util.*;
Authorization
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 integrovanou roli Azure RBAC Storage Blob Data Reader nebo vyšší pro operace 'get', a roli Storage Blob Data Contributor nebo vyšší pro operace 'set'. 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í DefaultAzureCredentiala 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í na každém Blob úložišti. Některé z nich můžou být přečtené nebo nastavené, zatímco jiné jsou jen pro čtení. Pod povrchem 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 ukládání dalších hodnot u zdroje. 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 o požadavcích na pojmenování metadat naleznete v Názvy metadat.
Note
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í systémové vlastnosti ContentType a ContentLanguage na 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 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());
});
}
Resources
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ě.