Hantera containeregenskaper och metadata med Java
Blobcontainrar stöder systemegenskaper och användardefinierade metadata, utöver de data som de innehåller. Den här artikeln visar hur du hanterar systemegenskaper och användardefinierade metadata med Azure Storage-klientbiblioteket för Java.
Förutsättningar
- Azure-prenumeration – skapa en kostnadsfritt
- Azure Storage-konto – skapa ett lagringskonto
- Java Development Kit (JDK) version 8 eller senare (vi rekommenderar version 17 för bästa möjliga upplevelse)
- Apache Maven används för projekthantering i det här exemplet
Konfigurera din miljö
Om du inte har ett befintligt projekt visar det här avsnittet hur du konfigurerar ett projekt för att arbeta med Azure Blob Storage-klientbiblioteket för Java. Mer information finns i Kom igång med Azure Blob Storage och Java.
Följ de här stegen för att konfigurera projektet om du vill arbeta med kodexemplen i den här artikeln.
Kommentar
Den här artikeln använder verktyget Maven-kompilering för att skapa och köra exempelkoden. Andra byggverktyg, till exempel Gradle, fungerar också med Azure SDK för Java.
Installera paket
pom.xml
Öppna filen i textredigeraren. Installera paketen genom att inkludera BOM-filen eller inkludera ett direkt beroende.
Lägga till importinstruktioner
Lägg till följande import
-uttryck:
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.util.*;
Auktorisering
Auktoriseringsmekanismen måste ha de behörigheter som krävs för att fungera med containeregenskaper eller metadata. För auktorisering med Microsoft Entra-ID (rekommenderas) behöver du den inbyggda Rollen Storage Blob Data Reader eller senare för get-åtgärderna och Storage Blob Data Contributor eller senare för de angivna åtgärderna. Mer information finns i auktoriseringsvägledningen för Get Container Properties (REST API), Set Container Metadata (REST API) eller Get Container Metadata (REST API).
Skapa ett klientobjekt
Om du vill ansluta en app till Blob Storage skapar du en instans av BlobServiceClient.
I följande exempel används BlobServiceClientBuilder för att skapa ett BlobServiceClient
objekt med , DefaultAzureCredential
och visar hur du skapar container- och blobklienter om det behövs:
// 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>");
Mer information om hur du skapar och hanterar klientobjekt finns i Skapa och hantera klientobjekt som interagerar med dataresurser.
Om egenskaper och metadata
Systemegenskaper: Systemegenskaper finns på varje Blob Storage-resurs. Vissa av dem kan läsas eller ställas in, medan andra är skrivskyddade. I bakgrunden motsvarar vissa systemegenskaper vissa STANDARD HTTP-huvuden. Azure Storage-klientbiblioteket för Java underhåller dessa egenskaper åt dig.
Användardefinierade metadata: Användardefinierade metadata består av ett eller flera namn/värde-par som du anger för en Blob Storage-resurs. Du kan använda metadata för att lagra ytterligare värden med resursen. Metadatavärden är endast för dina egna syften och påverkar inte hur resursen beter sig.
Metadatanamn/värdepar är giltiga HTTP-huvuden och bör följa alla begränsningar som styr HTTP-huvuden. Mer information om namngivningskrav för metadata finns i Metadatanamn.
Hämta containeregenskaper
Använd följande metod för att hämta containeregenskaper:
I följande kodexempel hämtas en containers systemegenskaper och egenskapsvärdena skrivs till ett konsolfönster:
public void getContainerProperties(BlobContainerClient blobContainerClient) {
BlobContainerProperties properties = blobContainerClient.getProperties();
System.out.printf("Public Access Type: %s, Legal Hold? %b, Immutable? %b%n",
properties.getBlobPublicAccess(),
properties.hasLegalHold(),
properties.hasImmutabilityPolicy());
}
Ange och hämta metadata
Du kan ange metadata som ett eller flera namn/värde-par på en blob- eller containerresurs. Om du vill ange metadata använder du följande metod:
Om du anger containermetadata skrivs alla befintliga metadata som är associerade med containern över. Det går inte att ändra ett enskilt namn/värde-par.
I följande kodexempel anges metadata på en container:
public void addContainerMetadata(BlobContainerClient blobContainerClient) {
Map<String, String> metadata = new HashMap<String, String>();
metadata.put("docType", "text");
metadata.put("category", "reference");
try {
blobContainerClient.setMetadata(metadata);
System.out.printf("Set metadata completed %n");
} catch (UnsupportedOperationException error) {
System.out.printf("Failure while setting metadata %n");
}
}
Anropa följande metod för att hämta metadata:
Följande exempel läser i metadatavärden:
public void readContainerMetadata(BlobContainerClient blobContainerClient) {
BlobContainerProperties properties = blobContainerClient.getProperties();
System.out.printf("Container metadata: %n");
properties.getMetadata().entrySet().forEach(metadataItem -> {
System.out.printf(" %s = %s%n", metadataItem.getKey(), metadataItem.getValue());
});
}
Resurser
Mer information om hur du ställer in och hämtar containeregenskaper och metadata med hjälp av Azure Blob Storage-klientbiblioteket för Java finns i följande resurser.
Kodexempel
REST API-åtgärder
Azure SDK för Java innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta Java-paradigm. Klientbiblioteksmetoderna för att ange och hämta egenskaper och metadata använder följande REST API-åtgärder:
- Hämta containeregenskaper (REST API)
- Ange containermetadata (REST API)
- Hämta containermetadata (REST API)
Metoden getProperties
hämtar containeregenskaper och metadata genom att anropa både åtgärden Hämta blobegenskaper och åtgärden Hämta blobmetadata .
Klientbiblioteksresurser
Relaterat innehåll
- Den här artikeln är en del av utvecklarguiden för Blob Storage för Java. Mer information finns i den fullständiga listan över utvecklarguideartiklar i Skapa din Java-app.