Перейти к основному содержимому

Восстановить удаленный объект

Если необходимо восстановить удаленный объект в S3-совместимом хранилище с включенной версионностью, можно выполнить удаление соответствующего Delete Marker. Это позволит сделать последнюю сохраненную версию объекта снова доступной как текущую(IsLatest).

Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.

AWS CLI. Восстановить удаленный объект

В терминале выполните команду:

aws s3api delete-object \
--bucket <bucket_name> \
--key <object_name> \
--version-id <versionid>

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта; <versionid> — идентификатор-версии-delete-marker.

Если необходимо восстановить определенную версию объекта и сделать ее актуальной (IsLatest), можно воспользоваться операцией копирования объекта (copy-object) с указанием нужной версии источника. При этом будет создана новая версия объекта, содержащая те же данные, что и выбранная версия.

В терминале выполните команду:

aws s3api copy-object \
--bucket <bucket-name> \
--key <object-key> \
--copy-source <bucket-name>/<object-key>?versionId=<versionid>

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта; <versionid> — уникальный идентификатор версии, которую вы хотите восстановить.

После выполнения этой команды:

  • будет создана новая версия объекта с содержимым, идентичным указанной версии.
  • новая версия станет текущей (IsLatest: true);
  • Delete Marker останется в истории версий, но перестанет быть актуальной (IsLatest: false), так как она будет "перекрыта" новой версией.
СитуацияРешение
Объект случайно удалили, и нужно просто восстановить как былоУдалить Delete Marker
Объект был изменен, потом удален, и нужно восстановить определенную старую версиюcopy-object нужной версии + удалить Delete Marker

Подробнее о бакетах и объектах см. в статьях О бакетах и Об объектах.