Вопрос

Как бы просто это ни звучало, эта задача кажется чрезвычайно сложной.

Это было полезно?

Решение

Если вы используете GEM AWS-S3, следующий код будет переименовать папку Old_Folder_Name в Buget Bucket_name для New_Folder_Name:

bsize = OLD_FOLDER_NAME.size
bucket = AWS::S3::Bucket.find(BUCKET_NAME)
bucket.objects({:prefix=>OLD_FOLDER_NAME}).each do |o|
  AWS::S3::S3Object.rename(o.key, NEW_FOLDER_NAME + o.key[bsize..-1], BUCKET_NAME)
end

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

Другие советы

Похоже, Интерфейс командной строки AWSэто новый способ делать подобные вещи.С его помощью вы можете переименовать папку следующим образом:

aws s3 mv --recursive s3://bucketname/oldfoldername s3://bucketname/newfoldername

Обязательно начните с --dryrun возможность убедиться, что он будет делать то, что вы думаете.

Если вы используете консоль управления S3, вы можете вырезать и вставить. Перейдите в нужную папку, нажмите Ctrl + A, затем нажмите «Действия»> «Вырезать». Сделайте свою новую папку и нажмите «Действия»> «Вставить».

Используйте BucketExplorer! Это отличное приложение! Вы можете сделать в значительной степени все, что вы когда-либо хотели сделать с вашим S3 в очень очень легко понять GUI

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top