Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все инструкции
      • Загрузка объекта
      • Составная загрузка объекта
      • Получение списка объектов в бакете
      • Получение информации об объекте
      • Скачивание объекта
      • Восстановление версии объекта
      • Переименование и перемещение объекта
      • Копирование объектов
      • Получение публичной ссылки на объект
      • Настройка блокировок версии объекта
      • Удаление объекта
      • Удаление всех объектов
      • Удаление частично загруженного объекта
      • Редактирование ACL объекта
      • Управление метками объекта
      • Управление пользовательскими метаданными объекта
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Удалить объект или версию объекта без блокировки
  • Удалить версию объекта с блокировкой (object lock)
  1. Пошаговые инструкции
  2. Объекты
  3. Удаление объекта

Удаление объекта

Статья создана
Yandex Cloud
Улучшена
Обновлена 5 мая 2025 г.
  • Удалить объект или версию объекта без блокировки
  • Удалить версию объекта с блокировкой (object lock)

Важно

По умолчанию операция удаления необратима. Восстановить можно только те объекты, которые были загружены при включенном версионировании.

Удалить объект или версию объекта без блокировки

Любой объект или версию объекта, на которую не установлена блокировка (в том числе если в бакете не включены блокировки), можно удалить без дополнительных подтверждений.

Примечание

Объект, составная загрузка которого не завершена, удаляется по другой инструкции.

Минимальная необходимая роль — storage.editor.

Чтобы удалить объект:

Консоль управления
Yandex Cloud CLI
AWS CLI
Terraform
API
  1. В консоли управления в списке сервисов выберите Object Storage и перейдите в бакет, где хранится удаляемый объект.

  2. На панели слева выберите Объекты.

  3. Чтобы видеть все версии объектов в списке, справа от поля поиска объекта в бакете, включите опцию Показать версии.

  4. Чтобы удалить один объект, нажмите → Удалить.

    Чтобы выполнить это же действие с несколькими объектами, отметьте их в списке и нажмите кнопку Удалить в нижней части экрана.

    Примечание

    Можно удалить папку с объектами. Это асинхронная операция, после запуска которой объекты не исчезают сразу из бакета, а удаляются постепенно. Вы в это время можете выполнять другие операции в консоли управления, в том числе загрузку новых объектов в удаляемую папку. Детали смотрите в разделе Папка.

  5. В открывшемся окне нажмите кнопку Удалить.

В консоли управления информация о количестве объектов в бакете и занятом месте обновляется с задержкой в несколько минут.

Примечание

Работать одновременно с несколькими объектами удобнее с помощью файловых браузеров CyberDuck и WinSCP или с помощью AWS CLI.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для удаления объекта из бакета:

    yc storage s3api delete-object --help
    
  2. Получите список бакетов в каталоге по умолчанию:

    yc storage bucket list
    

    Результат:

    +------------------+----------------------+-------------+-----------------------+---------------------+
    |       NAME       |      FOLDER ID       |  MAX SIZE   | DEFAULT STORAGE CLASS |     CREATED AT      |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    | first-bucket     | b1gmit33ngp6******** | 53687091200 | STANDARD              | 2022-12-16 13:58:18 |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    
  3. Выполните команду:

    yc storage s3api put-object \
      --bucket <имя_бакета> \
      --key <ключ_объекта>
    

    Где:

    • --bucket — имя вашего бакета.
    • --key — ключ объекта.

    Результат:

    request_id: 0311ec7********
    

    Альтернативная команда:

    yc storage s3 rm \
      s3://<имя_бакета>/<ключ_объекта>
    

    Результат:

    delete: s3://my-bucket/object.txt
    

Если у вас еще нет AWS CLI, установите и сконфигурируйте его.

В терминале выполните команду aws s3api delete-object:

aws s3api delete-object \
  --endpoint-url https://storage.yandexcloud.net \
  --bucket <имя_бакета> \
  --key <ключ_объекта>

Где:

  • --bucket — имя вашего бакета.
  • --key — ключ объекта.

Чтобы одновременно удалить список объектов, укажите ключи этих объектов в параметре --delete:

  • Bash:

    aws s3api delete-objects \
      --endpoint-url=https://storage.yandexcloud.net \
      --bucket <имя_бакета> \
      --delete '{"Objects":[{"Key":"<ключ_объекта_1>"},{"Key":"<ключ_объекта_2>"},...,{"Key":"<ключ_объекта_n>"}]}'
    
  • PowerShell:

    aws s3api delete-objects `
      --endpoint-url=https://storage.yandexcloud.net `
      --bucket <имя_бакета> `
      --delete '{\"Objects\":[{\"Key\":\"<ключ_объекта_1>\"},{\"Key\":\"<ключ_объекта_2>\"},...,{\"Key\":\"<ключ_объекта_n>\"}]}'
    

Где:

  • --bucket — имя бакета.
  • <ключ_объекта_1>, <ключ_объекта_2>, <ключ_объекта_n> — ключи объектов, которые нужно удалить.

Результат:

{
  "Deleted": [
      {
          "Key": "<ключ_объекта_1>",
          "VersionId": "null"
      },
      {
          "Key": "<ключ_объекта_2>",
          "VersionId": "null"
      }
      ...
      {
          "Key": "<ключ_объекта_n>",
          "VersionId": "null"
      }
  ]
}

Указать объекты для удаления можно с помощью шаблона запроса в формате JMESPath. Для удаления объектов по шаблону выполните команду:

  • Bash:

    aws s3api list-objects \
      --endpoint-url https://storage.yandexcloud.net \
      --bucket <имя_бакета> \
      --query '<запрос>' \
      --output text | xargs -I {} aws s3api delete-object --endpoint-url https://storage.yandexcloud.net --bucket <имя_бакета> --key {}
    

    Где:

    • --bucket — имя бакета.
    • --query — запрос в формате JMESPath.

    Пример команды для удаления из бакета sample-bucket всех объектов, расположенных в папке screenshots, имена файлов которых начинаются с даты 20231002:

    aws s3api list-objects \
      --endpoint-url https://storage.yandexcloud.net \
      --bucket sample-bucket \
      --query 'Contents[?starts_with(Key, `screenshots/20231002`) == `true`].[Key]' \
      --output text | xargs -I {} aws s3api delete-object --endpoint-url https://storage.yandexcloud.net --bucket sample-bucket --key {}
    
  • PowerShell:

    Foreach($x in (aws s3api list-objects `
      --endpoint-url https://storage.yandexcloud.net `
      --bucket <имя_бакета> `
      --query '<запрос>' `
      --output text)) `
      {aws s3api delete-object --endpoint-url https://storage.yandexcloud.net --bucket <имя_бакета> --key $x}
    

    Где:

    • --bucket — имя бакета.
    • --query — запрос в формате JMESPath.

    Пример команды для удаления из бакета sample-bucket всех объектов, расположенных в папке screenshots, имена файлов которых начинаются с даты 20231002:

    Foreach($x in (aws s3api list-objects `
      --endpoint-url https://storage.yandexcloud.net `
      --bucket sample-bucket `
      --query 'Contents[?starts_with(Key, `screenshots/20231002`) == `true`].[Key]' `
      --output text)) `
      {aws s3api delete-object --endpoint-url https://storage.yandexcloud.net --bucket sample-bucket --key $x}
    

Примечание

Terraform взаимодействует с Object Storage от имени сервисного аккаунта. Назначьте сервисному аккаунту нужную роль, например storage.admin, на каталог, в котором будут создаваться ресурсы.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы удалить объект из бакета, созданный с помощью Terraform:

  1. Откройте файл конфигурации Terraform и удалите фрагмент с описанием объекта.

    Пример описания объекта в конфигурации Terraform
    ...
    resource "yandex_storage_object" "cute-cat-picture" {
      access_key = "YCAJEX9Aw2ge********-w-lJ"
      secret_key = "YCONxG7rSdzVF9UMxLA_NRy5VbKzKlqZ********"
      bucket     = "cat-pictures"
      key        = "cute-cat"
      source     = "/images/cats/cute-cat.jpg"
    }
    ...
    
  2. В командной строке перейдите в папку, где расположен файл конфигурации Terraform.

  3. Проверьте конфигурацию командой:

    terraform validate
    

    Если конфигурация является корректной, появится сообщение:

    Success! The configuration is valid.
    
  4. Выполните команду:

    terraform plan
    

    В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

  5. Примените изменения конфигурации:

    terraform apply
    
  6. Подтвердите изменения: введите в терминал слово yes и нажмите Enter.

    Проверить изменения можно в консоли управления.

Воспользуйтесь методом S3 API delete.

Примечание

Работать одновременно с несколькими объектами удобнее с помощью файловых браузеров CyberDuck и WinSCP или с помощью AWS CLI.

Удалить версию объекта с блокировкой (object lock)

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

Чтобы проверить, установлена ли блокировка, и удалить версию объекта при возможности:

Консоль управления
Yandex Cloud CLI
AWS CLI
API
  1. Если это возможно, снимите блокировку с объекта который вы хотите удалить.
  2. Удалите объект.

В консоли управления информация о количестве объектов в бакете и занятом месте обновляется с задержкой в несколько минут.

Примечание

Работать одновременно с несколькими объектами удобнее с помощью файловых браузеров CyberDuck и WinSCP или с помощью AWS CLI.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Получите информации о блокировке версии объекта::

    yc storage s3api head-object \
      --bucket <имя_бакета> \
      --key <ключ_объекта> \
      --version-id <идентификатор_версии>
    

    Где:

    • --bucket — имя вашего бакета.
    • --key — ключ объекта.
    • --version-id — идентификатор версии объекта.

    Если на версию установлена блокировка, об этом отобразится информация:

    object_lock_mode: GOVERNANCE
    object_lock_retain_until_date: "2024-10-11T10:23:12Z"
    

    Или:

    object_lock_legal_hold_status: ON
    

    Где:

    • object_lock_mode — тип временной блокировки:

      • GOVERNANCE — временная управляемая блокировка. Удалить версию объекта может пользователь с ролью storage.admin.
      • COMPLIANCE — временная строгая блокировка. Удалить версию объекта нельзя.
    • object_lock_retain_until_date — дата и время окончания временной блокировки в любом из форматов, описанных в стандарте HTTP. Например, Mon, 12 Dec 2022 09:00:00 GMT.

    • object_lock_legal_hold_status — статус бессрочной блокировки:

      • ON — включена. Удалить версию объекта нельзя. Снять блокировку может пользователь с ролью storage.uploader.
      • OFF — выключена.

    Если на версии объекта нет блокировки, эти поля не отобразятся, и версию объекта можно удалить по инструкции по удалению версии без блокировки.

  2. Получите список бакетов в каталоге по умолчанию:

    yc storage bucket list
    

    Результат:

    +------------------+----------------------+-------------+-----------------------+---------------------+
    |       NAME       |      FOLDER ID       |  MAX SIZE   | DEFAULT STORAGE CLASS |     CREATED AT      |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    | first-bucket     | b1gmit33ngp6******** | 53687091200 | STANDARD              | 2022-12-16 13:58:18 |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    
  3. Если установлена временная управляемая блокировка ("object_lock_mode": "GOVERNANCE") и у вас есть роль storage.admin, удалите версию объекта:

    yc storage s3api delete-object \
      --bucket <имя_бакета> \
      --key <ключ_объекта> \
      --version-id <идентификатор_версии> \
      --bypass-governance-retention
    

    Где:

    • --bucket — имя вашего бакета.
    • --key — ключ объекта.
    • --version-id — идентификатор версии объекта.
    • --bypass-governance-retention — флаг, подтверждающий обход блокировки.

    Результат:

    request_id: a58bf215********
    version_id: "null"
    
  1. Если у вас еще нет AWS CLI, установите и сконфигурируйте его.

  2. Получите информацию о блокировке версии объекта:

    aws --endpoint-url=https://storage.yandexcloud.net \
      s3api head-object \
      --bucket <имя_бакета> \
      --key <ключ_объекта> \
      --version-id <идентификатор_версии>
    

    Где:

    • --bucket — имя вашего бакета.
    • --key — ключ объекта.
    • --version-id — идентификатор версии объекта.

    Если на версию установлена блокировка, информация о ней отобразится в результате выполнения команды:

    {
      ...
      "ObjectLockMode": "<тип_временной_блокировки>",
      "ObjectLockRetainUntilDate": "<дата_и_время>",
      "ObjectLockLegalHoldStatus": "<статус_бессрочной_блокировки>",
      ...
    }
    

    Где:

    • ObjectLockMode — тип временной блокировки:

      • GOVERNANCE — временная управляемая блокировка. Удалить версию объекта может пользователь с ролью storage.admin.
      • COMPLIANCE — временная строгая блокировка. Удалить версию объекта нельзя.
    • ObjectLockRetainUntilDate — дата и время окончания временной блокировки в любом из форматов, описанных в стандарте HTTP. Например, Mon, 12 Dec 2022 09:00:00 GMT.

    • ObjectLockLegalHoldStatus — статус бессрочной блокировки:

      • ON — включена. Удалить версию объекта нельзя. Снять блокировку может пользователь с ролью storage.uploader.
      • OFF — выключена.

    Если на версии объекта нет блокировки, эти поля не отобразятся, и версию объекта можно удалить по инструкции по удалению версии без блокировки.

  3. Если установлена временная управляемая блокировка ("ObjectLockMode": "GOVERNANCE") и у вас есть роль storage.admin, удалите версию объекта:

    aws --endpoint-url=https://storage.yandexcloud.net \
      s3api delete-object \
      --bucket <имя_бакета> \
      --key <ключ_объекта> \
      --version-id <идентификатор_версии> \
      --bypass-governance-retention
    

    Где:

    • --bucket — имя вашего бакета.
    • --key — ключ объекта.
    • --version-id — идентификатор версии объекта.
    • --bypass-governance-retention — флаг, подтверждающий обход блокировки.
  1. Чтобы получить информацию о блокировке версии объекта, воспользуйтесь методами S3 API getObjectRetention (временная блокировка) и getObjectLegalHold (бессрочная блокировка).
  2. Если установлена только временная управляемая блокировка (GOVERNANCE) и у вас есть роль storage.admin, для удаления версии объекта воспользуйтесь методом S3 API delete. Укажите в запросе идентификатор версии и заголовок X-Amz-Bypass-Governance-Retention, чтобы подтвердить обход блокировки.

Была ли статья полезна?

Предыдущая
Настройка блокировок версии объекта
Следующая
Удаление всех объектов
Проект Яндекса
© 2025 ООО «Яндекс.Облако»