如何在S3上重命名存储桶中的文件夹?

时间:2010-08-04 19:36:22

标签: ruby rubygems amazon-s3 bucket

听起来很简单,这似乎是一项非常复杂的任务。

4 个答案:

答案 0 :(得分:11)

如果您使用的是aws-s3 gem,则以下代码会将存储桶BUCKET_NAME中的文件夹OLD_FOLDER_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

就是这样。文件夹不是真正的对象,因此您所要做的就是将最终在该特定路径中的所有对象重命名为新路径。虚拟文件夹将被重命名为结果。

答案 1 :(得分:9)

好像是AWS Command Line Interface 这是做这样的事情的新方法。使用它,您可以重命名这样的文件夹:

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

请务必先从--dryrun选项开始,确保它能按照您的想法执行。

答案 2 :(得分:1)

如果您使用S3管理控制台,则可以剪切和粘贴。转到所需的文件夹,单击Ctrl + A,然后单击操作>切。制作新文件夹,然后点击操作>糊。

答案 3 :(得分:0)

使用BucketExplorer!这是一个很棒的应用程序!你可以用一个非常容易理解的GUI来做你想做的任何事情。