Bagikan melalui


Mengatur atau mengubah tingkat akses blob blok dengan Java

Artikel ini memperlihatkan cara mengatur atau mengubah tingkat akses untuk blob blok menggunakan pustaka klien Azure Storage untuk Java.

Prasyarat

Menyiapkan lingkungan Anda

Jika Anda tidak memiliki proyek yang sudah ada, bagian ini memperlihatkan kepada Anda cara menyiapkan proyek untuk bekerja dengan pustaka klien Azure Blob Storage untuk Java. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Blob Storage dan Java.

Untuk bekerja dengan contoh kode dalam artikel ini, ikuti langkah-langkah ini untuk menyiapkan proyek Anda.

Catatan

Artikel ini menggunakan alat build Maven untuk membangun dan menjalankan kode contoh. Alat build lainnya, seperti Gradle, juga bekerja dengan Azure SDK untuk Java.

Memasang paket

Buka file pom.xml di editor teks Anda. Instal paket dengan menyertakan file BOM, atau termasuk dependensi langsung.

Menambahkan pernyataan impor

Tambahkan pernyataan import berikut:

import com.azure.core.util.polling.LongRunningOperationStatus;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.options.BlobBeginCopyOptions;

Authorization

Mekanisme otorisasi harus memiliki izin yang diperlukan untuk mengatur tingkat akses blob. Untuk otorisasi dengan MICROSOFT Entra ID (disarankan), Anda memerlukan peran bawaan Azure RBAC Kontributor Data Blob Penyimpanan atau yang lebih tinggi. Untuk mempelajari selengkapnya, lihat panduan otorisasi untuk Mengatur Tingkat Blob.

Membuat objek klien

Untuk menyambungkan aplikasi ke Blob Storage, buat instans BlobServiceClient.

Contoh berikut menggunakan BlobServiceClientBuilder untuk membangun BlobServiceClient objek menggunakan DefaultAzureCredential, dan menunjukkan cara membuat klien kontainer dan blob, jika diperlukan:

// 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>");

Untuk mempelajari selengkapnya tentang membuat dan mengelola objek klien, lihat Membuat dan mengelola objek klien yang berinteraksi dengan sumber daya data.

Tentang tingkat akses blob blok

Untuk mengelola biaya untuk kebutuhan penyimpanan, akan sangat membantu untuk mengatur data Anda berdasarkan seberapa sering data diakses dan berapa lama perlu dipertahankan. Penyimpanan Azure menawarkan tingkat penyimpanan yang berbeda sehingga Anda dapat menyimpan data blob dengan cara yang paling hemat biaya berdasarkan cara data digunakan.

Tingkat penyimpanan untuk data blob

Tingkat penyimpanan Azure Storage meliputi:

  • Tingkat panas - Tingkatan online yang dioptimalkan untuk menyimpan data yang sering diakses atau diubah. Tingkat panas memiliki biaya penyimpanan tertinggi tetapi biaya aksesnya paling rendah.
  • Tingkat dingin - Tingkatan online yang dioptimalkan untuk menyimpan data yang jarang diakses atau diubah. Data di tingkat dingin harus disimpan selama minimal 30 hari. Tingkat dingin memiliki biaya penyimpanan yang lebih rendah dan biaya akses yang lebih tinggi dibandingkan dengan tingkat panas.
  • Tingkat dingin - Tingkat online yang dioptimalkan untuk menyimpan data yang jarang diakses atau dimodifikasi. Data di tingkat dingin harus disimpan selama minimal 90 hari. Tingkat dingin memiliki biaya penyimpanan yang lebih rendah dan biaya akses yang lebih tinggi dibandingkan dengan tingkat panas.
  • Tingkat arsip - Tingkatan offline yang dioptimalkan untuk menyimpan data yang jarang diakses, dan memiliki persyaratan latensi yang fleksibel, pada urutan jam. Data di tingkat arsip harus disimpan selama minimal 180 hari.

Untuk mempelajari selengkapnya tentang tingkat akses, lihat Tingkat akses untuk data blob.

Saat blob berada di tingkat akses Arsip, maka dianggap offline dan tidak dapat dibaca atau dimodifikasi. Untuk membaca atau memodifikasi data dalam blob yang diarsipkan, Anda harus terlebih dahulu merehidrasi blob ke tingkat online. Untuk mempelajari selengkapnya tentang rehidrasi blob dari tingkat Arsip ke tingkat online, lihat Rehidrasi blob dari tingkat Arsip.

Batasan

Mengatur tingkat akses hanya diperbolehkan pada blob blok. Untuk mempelajari selengkapnya tentang pembatasan pengaturan tingkat akses blob blok, lihat Mengatur Tingkat Blob (REST API).

Catatan

Untuk mengatur tingkat akses ke Cold menggunakan Java, Anda harus menggunakan pustaka klien minimum versi 12.21.0.

Mengatur tingkat akses blob selama unggahan

Anda dapat mengatur tingkat akses blob saat diunggah dengan menggunakan kelas BlobUploadFromFileOptions . Contoh kode berikut menunjukkan cara mengatur tingkat akses saat mengunggah 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());
    }
}

Untuk mempelajari selengkapnya tentang mengunggah blob dengan Java, lihat Mengunggah blob dengan Java.

Mengubah tingkat akses untuk blob blok yang ada

Anda dapat mengubah tingkat akses blob blok yang ada dengan menggunakan salah satu metode berikut:

Contoh kode berikut menunjukkan cara mengubah tingkat akses ke Dingin untuk blob yang ada:

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

Jika Anda merehidrasi blob yang diarsipkan, gunakan metode setAccessTierWithResponse . Atur tier parameter ke nilai AccessTier yang valid dari HOT, , COOLCOLD, atau ARCHIVE. Anda dapat secara opsional mengatur priority parameter ke nilai RehydratePriorityHIGHatau STANDARD.

Contoh kode berikut menunjukkan cara merehidrasi blob yang diarsipkan dengan mengubah tingkat akses menjadi Panas:

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);
}

Metode setAccessTierWithResponse juga dapat menerima parameter BlobSetAccessTierOptions untuk menentukan opsi konfigurasi.

Menyalin blob ke tingkat akses yang berbeda

Anda dapat mengubah tingkat akses blob blok yang ada dengan menentukan tingkat akses sebagai bagian dari operasi salin. Untuk mengubah tingkat akses selama operasi salin, gunakan kelas BlobBeginCopyOptions .

Anda dapat menggunakan metode setTier untuk menentukan nilai AccessTier sebagai HOT, , COOL, COLDatau ARCHIVE. Jika Anda merehidrasi blob dari tingkat arsip menggunakan operasi salin, gunakan metode setRehydratePriority untuk menentukan nilai RehydratePriority sebagai HIGH atau STANDARD.

Contoh kode berikut menunjukkan cara merehidrasi blob yang diarsipkan ke tingkat Hot menggunakan operasi salin:

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);
}

Untuk mempelajari selengkapnya tentang menyalin blob dengan Java, lihat Menyalin blob dengan Java.

Sumber

Untuk mempelajari selengkapnya tentang mengatur tingkat akses menggunakan pustaka klien Azure Blob Storage untuk Java, lihat sumber daya berikut ini.

Sampel kode

Operasi REST API

Azure SDK untuk Java berisi pustaka yang dibangun di atas Azure REST API, memungkinkan Anda berinteraksi dengan operasi REST API melalui paradigma Java yang sudah dikenal. Metode pustaka klien untuk mengatur tingkat akses menggunakan operasi REST API berikut:

Sumber daya pustaka klien

Lihat juga

  • Artikel ini adalah bagian dari panduan pengembang Blob Storage untuk Java. Untuk mempelajari lebih lanjut, lihat daftar lengkap artikel panduan pengembang di Membangun aplikasi Java Anda.