Menghapus dan memulihkan kontainer blob dengan Java

Artikel ini memperlihatkan cara menghapus kontainer dengan pustaka klien Azure Storage untuk Java. Jika Anda telah mengaktifkan penghapusan sementara kontainer, Anda dapat memulihkan kontainer yang dihapus.

Prasyarat

  • Artikel ini mengasumsikan Anda sudah menyiapkan proyek untuk bekerja dengan pustaka klien Azure Blob Storage untuk Java. Untuk mempelajari tentang menyiapkan proyek Anda, termasuk penginstalan paket, menambahkan arahan import , dan membuat objek klien resmi, lihat Mulai menggunakan Azure Storage dan Java.
  • Mekanisme otorisasi harus memiliki izin untuk menghapus kontainer blob, atau untuk memulihkan kontainer yang dihapus sementara. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk operasi REST API berikut:

Menghapus kontainer

Untuk menghapus kontainer di Java, gunakan salah satu metode berikut dari BlobServiceClient kelas :

Anda juga dapat menghapus kontainer menggunakan salah satu metode berikut dari BlobContainerClient kelas :

Setelah menghapus kontainer, Anda tidak dapat membuat wadah dengan nama yang sama setidaknya selama 30 detik. Mencoba membuat kontainer dengan nama yang sama akan gagal dengan kode 409 (Conflict)kesalahan HTTP . Operasi lain pada kontainer atau blob yang dikandungnya akan gagal dengan kode 404 (Not Found)kesalahan HTTP .

Contoh berikut menggunakan BlobServiceClient objek untuk menghapus kontainer yang ditentukan:

public void deleteContainer(BlobServiceClient blobServiceClient, String containerName) {
    // Delete the container using the service client
    blobServiceClient.deleteBlobContainer(containerName);
}

Contoh berikut menunjukkan cara menghapus semua kontainer yang dimulai dengan awalan tertentu:

public void deleteContainersWithPrefix(BlobServiceClient blobServiceClient) {
    ListBlobContainersOptions options = new ListBlobContainersOptions()
            .setPrefix("container-");

    // Delete the container with the specified prefix using the service client
    for (BlobContainerItem containerItem : blobServiceClient.listBlobContainers(options, null)) {
        BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerItem.getName());
        containerClient.delete();
    }
}

Memulihkan kontainer yang dihapus

Saat penghapusan sementara kontainer diaktifkan untuk akun penyimpanan, kontainer yang dihapus dan kontennya dapat dipulihkan dalam periode retensi tertentu. Untuk mempelajari selengkapnya tentang penghapusan sementara kontainer, lihat Mengaktifkan dan mengelola penghapusan sementara untuk kontainer. Anda dapat memulihkan kontainer yang dihapus sementara dengan memanggil metode BlobServiceClient kelas berikut:

Contoh berikut menemukan kontainer yang dihapus, mendapatkan versi kontainer yang dihapus, lalu meneruskan versi ke dalam undeleteBlobContainer metode untuk memulihkan kontainer.

public void restoreContainer(BlobServiceClient blobServiceClient) {
    ListBlobContainersOptions options = new ListBlobContainersOptions();
    options.getDetails().setRetrieveDeleted(true);

    // Delete the container with the specified prefix using the service client
    for (BlobContainerItem deletedContainerItem : blobServiceClient.listBlobContainers(options, null)) {
        BlobContainerClient containerClient = blobServiceClient
                .undeleteBlobContainer(deletedContainerItem.getName(), deletedContainerItem.getVersion());
    }
}

Sumber

Untuk mempelajari selengkapnya tentang menghapus kontainer menggunakan pustaka klien Azure Blob Storage untuk Java, lihat sumber daya berikut ini.

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 menghapus atau memulihkan kontainer menggunakan operasi REST API berikut:

Sampel kode

Sumber daya pustaka klien

Baca juga