Удаление и восстановление контейнера BLOB-объектов с помощью JavaScript или TypeScript
В этой статье приводятся сведения об удалении и восстановлении контейнеров с помощью клиентской библиотеки службы хранилища Azure для JavaScript. Если вы включили обратимое удаление контейнера, можно восстановить удаленные контейнеры.
Необходимые компоненты
- В примерах этой статьи предполагается, что у вас уже есть проект, настроенный для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для JavaScript. Сведения о настройке проекта, включая установку пакетов, импорт модулей и создание авторизованного клиентского объекта для работы с ресурсами данных, см. в статье "Начало работы с Хранилище BLOB-объектов Azure и JavaScript".
- Механизм авторизации должен иметь разрешения на удаление контейнера BLOB-объектов или восстановление обратимого удаленного контейнера. Дополнительные сведения см. в руководстве по авторизации для следующих операций REST API:
Удаление контейнера
Чтобы удалить контейнер, используйте следующий метод из класса BlobServiceClient :
Контейнер можно также удалить с помощью следующего метода из класса ContainerClient :
После удаления контейнера вы не сможете создать контейнер с тем же именем в течение как минимум 30 секунд. Попытка создать контейнер с тем же именем завершается ошибкой с кодом 409 (Conflict)
ошибки HTTP. Любые другие операции с контейнером или большими двоичными объектами, которые он содержит сбой с кодом 404 (Not Found)
ошибки HTTP.
В следующем примере для удаления указанного контейнера используется BlobServiceClient
объект:
async function deleteContainer(blobServiceClient, containerName) {
return await blobServiceClient.deleteContainer(containerName);
}
В следующем примере показано, как удалить все контейнеры, начинающиеся с указанного префикса:
async function deleteContainersWithPrefix(blobServiceClient, prefix) {
const containerOptions = {
includeDeleted: false,
includeMetadata: false,
includeSystem: true,
prefix
}
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
try{
const containerClient = blobServiceClient.getContainerClient(containerItem.name);
await containerClient.delete();
console.log(`Deleted ${containerItem.name} container - success`);
}catch(ex){
console.log(`Deleted ${containerItem.name} container - failed - ${ex.message}`);
}
}
}
Восстановление удаленного контейнера
Если обратимое удаление контейнера включено для учетной записи хранения, контейнер и его содержимое можно восстановить после удаления в течение указанного периода хранения. Вы можете восстановить обратимо удаленный контейнер с помощью объекта BlobServiceClient :
Следующий пример находит удаленный контейнер, получает идентификатор версии этого удаленного контейнера, а затем передает этот идентификатор в undeleteContainer
метод для восстановления контейнера.
async function undeleteContainer(blobServiceClient, containerName) {
// Version to restore
let containerVersion;
const containerOptions = {
includeDeleted: true,
prefix: containerName
}
// Find the deleted container and restore it
for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
if (containerItem.name === containerName) {
containerVersion = containerItem.version;
}
}
const containerClient = await blobServiceClient.undeleteContainer(
containerName,
containerVersion,
);
}
Ресурсы
Дополнительные сведения об удалении контейнера с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для JavaScript см. в следующих ресурсах.
Примеры кода
- Просмотр примеров кода JavaScript и TypeScript из этой статьи (GitHub)
Операции REST API
Пакет SDK Azure для JavaScript содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы JavaScript. Методы клиентской библиотеки для удаления или восстановления контейнера используют следующие операции REST API:
- Удаление контейнера (REST API)
- Восстановление контейнера (REST API)
Ресурсы клиентской библиотеки
См. также
Связанный контент
- Эта статья является частью руководства разработчика хранилища BLOB-объектов для JavaScript/Typescript. Дополнительные сведения см. в полном списке статей руководства разработчика по созданию приложения JavaScript/Typescript.