Blob-eigenschappen en -metagegevens beheren met Java
Naast de gegevens die ze bevatten, ondersteunen blobs systeemeigenschappen en door de gebruiker gedefinieerde metagegevens. In dit artikel wordt beschreven hoe u systeemeigenschappen en door de gebruiker gedefinieerde metagegevens beheert met de Azure Storage-clientbibliotheek voor Java.
Vereisten
- In dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor Java. Zie Aan de slag met Azure Storage en Java voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het toevoegen van
import
instructies en het maken van een geautoriseerd clientobject. - Het autorisatiemechanisme moet machtigingen hebben om te kunnen werken met blobeigenschappen of metagegevens. Zie de autorisatierichtlijnen voor de volgende REST API-bewerkingen voor meer informatie:
- Blobeigenschappen instellen
- Get Blob Properties (Blob-eigenschappen ophalen)
- Blobmetagegevens instellen
- Blobmetagegevens ophalen
Over eigenschappen en metagegevens
Systeemeigenschappen: Systeemeigenschappen bestaan op elke Blob Storage-resource. Sommige kunnen worden gelezen of ingesteld, terwijl andere alleen-lezen zijn. Onder de covers komen sommige systeemeigenschappen overeen met bepaalde standaard HTTP-headers. De Azure Storage-clientbibliotheek voor Java onderhoudt deze eigenschappen voor u.
Door de gebruiker gedefinieerde metagegevens: door de gebruiker gedefinieerde metagegevens bestaan uit een of meer naam-waardeparen die u opgeeft voor een Blob Storage-resource. U kunt metagegevens gebruiken om extra waarden op te slaan met de resource. Metagegevenswaarden zijn alleen bedoeld voor uw eigen doeleinden en hebben geen invloed op het gedrag van de resource.
Naam/waardeparen van metagegevens zijn geldige HTTP-headers en moeten voldoen aan alle beperkingen voor HTTP-headers. Zie Namen van metagegevens voor meer informatie over naamgevingsvereisten voor metagegevens.
Notitie
Blob-indextags bieden ook de mogelijkheid om willekeurige door de gebruiker gedefinieerde sleutel-/waardekenmerken op te slaan naast een Azure Blob Storage-resource. Hoewel dit vergelijkbaar is met metagegevens, worden alleen blob-indextags automatisch geïndexeerd en doorzoekbaar gemaakt door de systeemeigen blobservice. Metagegevens kunnen niet worden geïndexeerd en opgevraagd, tenzij u een afzonderlijke service zoals Azure Search gebruikt.
Zie Gegevens in Azure Blob Storage beheren en zoeken met blobindex voor meer informatie over deze functie.
Eigenschappen instellen en ophalen
Als u eigenschappen voor een blob wilt instellen, gebruikt u de volgende methode:
In het volgende codevoorbeeld worden de ContentType
en ContentLanguage
systeemeigenschappen voor een blob ingesteld.
Alle eigenschappen die niet expliciet zijn ingesteld, worden gewist. In het volgende codevoorbeeld worden eerst de bestaande eigenschappen op de blob opgehaald en vervolgens gebruikt om de headers te vullen die niet worden bijgewerkt.
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");
}
Gebruik de volgende methode om eigenschappen op een blob op te halen:
In het volgende codevoorbeeld worden de systeemeigenschappen van een blob opgehaald en worden enkele van de waarden weergegeven:
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());
}
Metagegevens instellen en ophalen
U kunt metagegevens opgeven als een of meer naam-waardeparen op een blob of containerresource. Als u metagegevens wilt instellen, verzendt u een kaartobject met naam-waardeparen met behulp van de volgende methode:
In het volgende codevoorbeeld worden metagegevens voor een blob ingesteld:
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");
}
}
Als u metagegevens wilt ophalen, roept u de methode getProperties in uw blob aan om de verzameling metagegevens te vullen en leest u de waarden, zoals wordt weergegeven in het onderstaande voorbeeld. De getProperties
methode haalt blobeigenschappen en metagegevens op door zowel de bewerking Blob-eigenschappen ophalen als de bewerking Blobmetagegevens ophalen aan te roepen.
In het volgende codevoorbeeld worden metagegevens op een blob gelezen en worden elke sleutel/waardepaar afgedrukt:
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
Zie de volgende resources voor meer informatie over het beheren van systeemeigenschappen en door de gebruiker gedefinieerde metagegevens met behulp van de Azure Blob Storage-clientbibliotheek voor Java.
REST API-bewerkingen
De Azure SDK voor Java bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende Java-paradigma's. De clientbibliotheekmethoden voor het beheren van systeemeigenschappen en door de gebruiker gedefinieerde metagegevens maken gebruik van de volgende REST API-bewerkingen:
- Blobeigenschappen instellen (REST API)
- Blobeigenschappen ophalen (REST API)
- Blobmetagegevens instellen (REST API)
- Blobmetagegevens ophalen (REST API)
Codevoorbeelden
Clientbibliotheekbronnen
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor