Verwalten von Blobeigenschaften und Metadaten mit Java
Blobs unterstützen neben den darin enthaltenen Daten auch Systemeigenschaften und benutzerdefinierte Metadaten. In diesem Artikel erfahren Sie, wie Sie Systemeigenschaften und benutzerdefinierte Metadaten mithilfe der Azure Storage-Clientbibliothek für Java verwalten.
Voraussetzungen
- In diesem Artikel wird davon ausgegangen, dass Sie bereits ein Projekt für die Arbeit mit der Azure Blob Storage-Clientbibliothek für Java eingerichtet haben. Informationen zum Einrichten Ihres Projekts – einschließlich Paketinstallation, Hinzufügen von
import
-Anweisungen und Erstellen eines autorisierten Clientobjekts – finden Sie unter Erste Schritte mit Azure Storage und Java. - Der Autorisierungsmechanismus muss über Berechtigungen zum Arbeiten mit Blobeigenschaften oder -metadaten verfügen. Weitere Informationen finden Sie im Autorisierungsleitfaden für die folgenden REST-API-Vorgänge:
Informationen zu Eigenschaften und Metadaten
Systemeigenschaften: Systemeigenschaften sind in jeder Blobspeicherressource vorhanden. Einige davon können gelesen oder festgelegt werden, während andere schreibgeschützt sind. Darüber hinaus entsprechen einige Systemeigenschaften bestimmten HTTP-Standardheadern. Die Azure Storage-Clientbibliothek für Java verwaltet diese Eigenschaften für Sie.
Benutzerdefinierte Metadaten: Benutzerdefinierte Metadaten bestehen aus mindestens einem Name-Wert-Paar, das Sie für eine Blobspeicherressource angeben. Metadaten können verwendet werden, um zusätzliche Werte mit der Ressource zu speichern. Metadatenwerte sind nur für Ihre eigenen Zwecke bestimmt und wirken sich nicht auf das Verhalten der Ressource aus.
Name/Wert-Paare für Metadaten sind gültige HTTP-Header und sollten allen Einschränkungen für HTTP-Header entsprechen. Weitere Informationen zu den Benennungsanforderungen für Metadaten finden Sie unter Metadatennamen.
Hinweis
Blobindextags bieten auch die Möglichkeit, beliebige benutzerdefinierte Schlüssel-Wert-Attribute zusammen mit einer Azure Blob Storage-Ressource zu speichern. Trotz der Ähnlichkeit mit Metadaten werden nur Blobindextags automatisch indiziert und durch den nativen Blob-Dienst suchbar gemacht. Metadaten können nicht indiziert und abgefragt werden, es sei denn, Sie verwenden einen separaten Dienst wie z. B. Azure Search.
Weitere Informationen zu dieser Funktion finden Sie unter Verwalten und Suchen von Daten in Azure Blob Storage mit dem Blobindex.
Festlegen und Abrufen von Eigenschaften
Verwenden Sie die folgende Methode, um Eigenschaften für ein Blob festzulegen:
Im folgenden Codebeispiel werden die Systemeigenschaften ContentType
und ContentLanguage
für ein Blob festgelegt.
Alle nicht explizit festgelegten Eigenschaften werden gelöscht. Im folgenden Codebeispiel werden zuerst die vorhandenen Eigenschaften für das Blob abgerufen und dann verwendet, um die Header aufzufüllen, die nicht aktualisiert werden.
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");
}
Verwenden Sie die folgende Methode, um Eigenschaften für ein Blob abzurufen:
Im folgenden Codebeispiel werden die Systemeigenschaften eines Blobs abgerufen und einige der Werte angezeigt:
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());
}
Festlegen und Abrufen von Metadaten
Sie können Metadaten als ein oder mehrere Name-Wert-Paare für eine Blob- oder Containerressource angeben. Um Metadaten festzulegen, senden Sie ein Zuordnung-Objekt mit Name/Wert-Paaren mittels der folgenden Methode:
Das folgende Codebeispiel legt die Metadaten für ein Blob fest:
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");
}
}
Zum Abrufen von Metadaten rufen Sie die getProperties-Methode für das Blob auf, um die Metadatensammlung zu füllen, und lesen anschließend die Werte wie im unten stehenden Beispiel gezeigt. Die getProperties
-Methode ruft Blobeigenschaften und Metadaten ab, indem sowohl der Vorgang Blobeigenschaften abrufen als auch der Vorgang Blobmetadaten abrufen aufgerufen wird.
Im folgenden Codebeispiel werden Metadaten für ein Blob gelesen und jedes Schlüssel-Wert-Paar ausgegeben:
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());
});
}
Ressourcen
Weitere Informationen zum Verwalten von Systemeigenschaften und benutzerdefinierten Metadaten mithilfe der Azure Blob Storage-Clientbibliothek für Java finden Sie in den folgenden Ressourcen.
REST-API-Vorgänge
Das SDK für Java enthält Bibliotheken, die auf der zugrunde liegenden Azure-REST-API basieren, und ermöglicht Ihnen dadurch die Interaktion mit REST-API-Vorgängen über vertraute Java-Paradigmen. Die Methoden der Clientbibliothek zum Verwalten von Systemeigenschaften und benutzerdefinierten Metadaten verwenden die folgenden REST-API-Vorgänge:
- Festlegen von Blobeigenschaften (REST-API)
- Abrufen von Blobeigenschaften (REST-API)
- Festlegen von Blobmetadaten (REST-API)
- Abrufen von Blobmetadaten (REST-API)
Codebeispiele
Ressourcen zur Clientbibliothek
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für