Sdílet prostřednictvím


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

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í.

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:

Ukázky kódu

Prostředky klientské knihovny