Поделиться через


Удаление и восстановление контейнера 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 см. в следующих ресурсах.

Примеры кода

Операции REST API

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

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

См. также

  • Эта статья является частью руководства разработчика хранилища BLOB-объектов для JavaScript/Typescript. Дополнительные сведения см. в полном списке статей руководства разработчика по созданию приложения JavaScript/Typescript.