虽然听起来很简单,但它似乎是一项非常复杂的任务.
解决方法
如果您使用的是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
而已.文件夹不是真正的对象,因此您所要做的就是将最终在该特定路径中的所有对象重命名为新路径.虚拟文件夹将作为结果重命名.