Sdílet prostřednictvím


Nastavení nebo změna úrovně přístupu objektu blob bloku pomocí Javy

Tento článek ukazuje, jak nastavit nebo změnit úroveň přístupu objektu blob bloku pomocí klientské knihovny služby Azure Storage pro Javu.

Předpoklady

  • Tento článek předpokládá, že už máte projekt nastavený tak, aby fungoval s klientskou knihovnou služby Azure Blob Storage pro Javu. Další informace o nastavení projektu, včetně instalace balíčku, přidání import direktiv a vytvoření autorizovaného objektu klienta, najdete v tématu Začínáme se službou Azure Storage a Javou.
  • Autorizační mechanismus musí mít oprávnění k nastavení úrovně přístupu objektu blob. Další informace najdete v pokynech k autorizaci pro následující operaci rozhraní REST API:

Informace o úrovních přístupu k objektům blob bloku

Pokud chcete spravovat náklady na potřeby úložiště, může být užitečné uspořádat data na základě toho, jak často se k nim přistupuje a jak dlouho je potřeba uchovávat. Azure Storage nabízí různé úrovně přístupu, takže data objektů blob můžete ukládat nákladově nejefektivnějším způsobem na základě způsobu jejich použití.

Úrovně přístupu k datům v objektech blob

Mezi úrovně přístupu ke službě Azure Storage patří:

  • Horká úroveň – online úroveň optimalizovaná pro ukládání dat, ke kterým se přistupuje nebo mění často. Horká úroveň má nejvyšší náklady na úložiště, ale nejnižší náklady na přístup.
  • Studená úroveň – online úroveň optimalizovaná pro ukládání dat, která jsou zřídka přístupná nebo upravená. Data ve studené vrstvě by měla být uložena minimálně po dobu 30 dnů. Studená úroveň má nižší náklady na úložiště a vyšší náklady na přístup v porovnání s horkou úrovní.
  • Studená úroveň – online úroveň optimalizovaná pro ukládání dat, která jsou zřídka přístupná nebo upravená. Data na úrovni Zřídkavý přístup by měla být uložená minimálně 90 dnů. Úroveň Zřídkavý přístup má v porovnání se studenou úrovní nižší náklady na úložiště a vyšší náklady na přístup.
  • Archivní úroveň – offline úroveň optimalizovaná pro ukládání zřídka používaných dat a s flexibilními požadavky na latenci v řádu hodin. Data v archivní úrovni by měla být uložena minimálně po dobu 180 dnů.

Další informace oúrovních

I když je objekt blob v archivní úrovni přístupu, považuje se za offline a nedá se číst ani upravovat. Chcete-li číst nebo upravovat data v archivovaného objektu blob, musíte nejprve znovu dosadit objekt blob do online vrstvy. Další informace o dosazování objektu blob z archivní úrovně do online úrovně najdete v tématu Dosazování objektů blob z archivní úrovně.

Omezení

Nastavení úrovně přístupu je povolené jenom u objektů blob bloku. Další informace o omezeních nastavení úrovně přístupu objektu blob bloku najdete v tématu Nastavení úrovně objektů blob (REST API).

Poznámka:

Pokud chcete nastavit úroveň přístupu na Cold používání Javy, musíte použít minimální verzi klientské knihovny 12.21.0.

Nastavení úrovně přístupu objektu blob během nahrávání

Úroveň přístupu objektu blob můžete nastavit při nahrávání pomocí třídy BlobUploadFromFileOptions . Následující příklad kódu ukazuje, jak nastavit úroveň přístupu při nahrávání objektu blob:

public void uploadBlobWithAccessTier(BlobContainerClient blobContainerClient, Path filePath) {
    String fileName = filePath.getFileName().toString();
    BlobClient blobClient = blobContainerClient.getBlobClient(fileName);

    BlobUploadFromFileOptions options = new BlobUploadFromFileOptions(filePath.toString())
            .setTier(AccessTier.COOL);

    try {
        Response<BlockBlobItem> blockBlob = blobClient.uploadFromFileWithResponse(options, null, null);
    } catch (UncheckedIOException ex) {
        System.err.printf("Failed to upload from file: %s%n", ex.getMessage());
    }
}

Další informace o nahrání objektu blob pomocí Javy najdete v tématu Nahrání objektu blob pomocí Javy.

Změna úrovně přístupu pro existující objekt blob bloku

Úroveň přístupu existujícího objektu blob bloku můžete změnit pomocí jedné z následujících metod:

Následující příklad kódu ukazuje, jak změnit úroveň přístupu na Studenou pro existující objekt blob:

public void changeBlobAccessTier(BlobClient blobClient) {
    // Change the blob's access tier to cool
    blobClient.setAccessTier(AccessTier.COOL);
}

Pokud dosazujete archivovaný objekt blob, použijte metodu setAccessTierWithResponse . tier Nastavte parametr na platnou hodnotu AccessTier of HOT, COOL, COLDnebo ARCHIVE. Volitelně můžete parametr nastavit priority na platnou hodnotu HIGH RehydratePriority nebo STANDARD.

Následující příklad kódu ukazuje, jak dosadit archivovaný objekt blob změnou úrovně přístupu na horkou:

public void rehydrateBlobSetAccessTier(BlobClient blobClient) {
    // Rehydrate the blob to hot tier using a standard rehydrate priority
    blobClient.setAccessTierWithResponse(
        AccessTier.HOT,
        RehydratePriority.STANDARD,
        null, 
        null, 
        null);
}

Metoda setAccessTierWithResponse může také přijmout parametr BlobSetAccessTierOptions pro určení možností konfigurace.

Kopírování objektu blob do jiné úrovně přístupu

Úroveň přístupu existujícího objektu blob bloku můžete změnit zadáním úrovně přístupu v rámci operace kopírování. Pokud chcete změnit úroveň přístupu během operace kopírování, použijte třídu BlobBeginCopyOptions .

Metodu setTier můžete použít k určení hodnoty AccessTier jako HOT, COOL, COLDnebo ARCHIVE. Pokud rehydrujete objekt blob z archivní vrstvy pomocí operace kopírování, pomocí metody setRehydratePriority zadejte hodnotu RehydratePriority jako HIGH nebo STANDARD.

Následující příklad kódu ukazuje, jak dosadit archivovaný objekt blob do horké vrstvy pomocí operace kopírování:

public void rehydrateBlobUsingCopy(
    BlobClient sourceArchiveBlob,
    BlobClient destinationRehydratedBlob) {
    // Note: the destination blob must have a different name than the archived source blob

    // Start the copy operation and wait for it to complete
    final SyncPoller<BlobCopyInfo, Void> poller = destinationRehydratedBlob.beginCopy(
            new BlobBeginCopyOptions(sourceArchiveBlob.getBlobUrl())
                    .setTier(AccessTier.HOT)
                    .setRehydratePriority(RehydratePriority.STANDARD));
                    
    PollResponse<BlobCopyInfo> response = poller
            .waitUntil(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED);
}

Další informace o kopírování objektu blob pomocí Javy najdete v tématu Kopírování objektu blob pomocí Javy.

Zdroje informací

Další informace o nastavení úrovní přístupu pomocí klientské knihovny 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 nastavení úrovní přístupu používají následující operaci rozhraní REST API:

Prostředky klientské knihovny

Ukázky kódu

Viz také