Файл корзины AWS S3 — переименовать объект с обратной косой чертой в папку и файл

#amazon-web-services #amazon-s3 #aws-cli

#amazon-web-services #amazon-s3 #aws-cli

Вопрос:

У меня есть несколько старых загруженных объектов S3, которые должны были быть в формате вложенной папки / имени файла, но по ошибке использовали обратную косую черту, которая сделала вложенную папку частью имени файла фактического объекта.

Используя aws cli, как я смогу рекурсивно запускать все мои объекты с обратной косой чертой ( folderfile ), создавать новую вложенную папку с именем папки и помещать объект с правильным именем файла внутри ( folder/file ) ?

Из этого

 bucket
    folder1file1
    folder1file2
    folder1file3
 

Для этого

 bucket
    folder1
        file1
        file2
        file3
 

Ответ №1:

У S3 нет «папок», у него есть только «ключи».
Вам нужно перечислить все объекты, а затем скопировать объект в ключ с соответствующим / в нем, например folder1/file1 , затем вы можете удалить старый файл. В S3 нет операции перемещения. И вам не нужно будет создавать папку. «Папки» существуют только в веб-консоли aws, поскольку они необходимы для взаимодействия с человеком.

Комментарии:

1. Итак, «папки», которые я вижу в веб-консоли, фактически являются просто ключами, которые все еще являются частью пути всего объекта? Итак, как я смогу сделать то, что я хочу, используя aws cli?

2. @slimjourney сначала вам нужно list отфильтровать список в соответствии с вашей логикой, а затем copy и затем delete .