如何使用Fog重命名文件?

BM5*_*M5k 11 ruby fog ruby-on-rails-3.2

我有一个rails 3.2 app.使用雾来存储S3中的文件.

我想编写一个脚本来重命名已上传的所有文件.我似乎无法在这个领域找到任何雾文件.

雾有可能吗?我需要另一颗宝石吗?

Dir*_*nry 13

本帖所述,复制怎么样?比照 雾的要求来源雾的模型来源.

你应该能够做到:

storage.copy_object('old_bucket', 'old_filename', 'new_bucket', 'new_filename')
Run Code Online (Sandbox Code Playgroud)

要么

file.copy('new_bucket', 'new_filename')
Run Code Online (Sandbox Code Playgroud)

尽管如此,在成功复制后仍然需要销毁原始文件.

  • 上面的storage.copy_object示例中的参数不正常.应该是old_bucket,old_filename,new_bucket,new_filename,根据来源https://github.com/fog/fog/blob/master/lib/fog/aws/requests/storage/copy_object.rb (2认同)

pgu*_*rio 8

坏消息是你需要做一个get/create/destroy

foo = bucket.files.get 'foo'
bar = bucket.files.create :key => 'bar', :body => foo.body
foo.destroy
Run Code Online (Sandbox Code Playgroud)

好消息是如果你在同一地区的ec2上做这件事,它可能会像在本地计算机上重命名文件一样快