Удаление и восстановление контейнера 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:
- Удаление контейнера (REST API)
- Восстановление контейнера (REST API)