11

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

4

4 回答 4

12

如果您使用的是 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

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

于 2011-04-14T18:37:02.777 回答
12

似乎AWS 命令​​行界面 是执行此类操作的新方法。使用它,您可以像这样重命名文件夹:

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

一定--dryrun要从选项开始,以确保它会做你认为它会做的事情。

于 2013-11-26T00:30:02.237 回答
2

如果您使用 S3 管理控制台,则可以剪切和粘贴。进入您想要的文件夹,单击 Ctrl + A,然后单击操作 > 剪切。创建新文件夹,然后单击操作 > 粘贴。

于 2016-06-01T12:21:42.943 回答
0

使用 BucketExplorer!这是一个很棒的应用程序!您可以在一个非常易于理解的 GUI 中对您的 s3 做几乎任何您想做的事情

于 2010-08-10T19:59:47.303 回答