Удаление и восстановление контейнера BLOB-объектов с помощью Java

В этой статье показано, как удалить контейнеры с помощью клиентской библиотеки служба хранилища Azure для Java. Если вы включили обратимое удаление контейнера, можно восстановить удаленные контейнеры.

Необходимые компоненты

  • В этой статье предполагается, что у вас уже есть проект, настроенный для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для Java. Сведения о настройке проекта, включая установку пакетов, добавление import директив и создание авторизованного клиентского объекта, см. в статье "Начало работы с служба хранилища Azure и Java".
  • Механизм авторизации должен иметь разрешения на удаление контейнера BLOB-объектов или восстановление обратимого удаленного контейнера. Дополнительные сведения см. в руководстве по авторизации для следующих операций REST API:

Удаление контейнера

Чтобы удалить контейнер в Java, используйте один из следующих методов из BlobServiceClient класса:

Вы также можете удалить контейнер с помощью одного из следующих методов из BlobContainerClient класса:

После удаления контейнера вы не сможете создать контейнер с тем же именем в течение как минимум 30 секунд. При попытке создать контейнер с тем же именем произойдет сбой с кодом 409 (Conflict)ошибки HTTP. Любые другие операции с контейнером или большими двоичными объектами, содержащимися в ней, завершаются ошибкой HTTP 404 (Not Found).

В следующем примере для удаления указанного контейнера используется BlobServiceClient объект:

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

В следующем примере показано, как удалить все контейнеры, начинающиеся с указанного префикса:

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

Восстановление удаленного контейнера

Если обратимое удаление контейнера включено для учетной записи хранения, удаленный контейнер и его содержимое могут быть восстановлены в течение указанного периода хранения. Дополнительные сведения о обратимом удалении контейнера см. в статье "Включение обратимого удаления и управление ими" для контейнеров. Можно восстановить обратимо удаленный контейнер, вызвав следующий метод BlobServiceClient класса:

Следующий пример находит удаленный контейнер, получает версию удаленного контейнера, а затем передает версию undeleteBlobContainer в метод для восстановления контейнера.

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

Ресурсы

Дополнительные сведения об удалении контейнера с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для Java см. в следующих ресурсах.

Операции REST API

Пакет SDK Azure для Java содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы Java. Методы клиентской библиотеки для удаления или восстановления контейнера используют следующие операции REST API:

Примеры кода

Ресурсы клиентской библиотеки

См. также