How do I rename a file with Fog?

蹲街弑〆低调 提交于 2019-12-04 18:05:20

问题


I have a rails 3.2 app. Using fog to store files in S3.

I would like to write a script to rename all of the files that have been uploaded. I can't seem to find any fog documentation in this area.

Is this possible with fog? Do I need another gem?


回答1:


The bad news is you need to do a get/create/destroy

foo = bucket.files.get 'foo'
bar = bucket.files.create :key => 'bar', :body => foo.body
foo.destroy

The good news is if you're doing it from ec2 in the same region it will probably happen as fast as renaming a file on your local computer




回答2:


What about copying as mentioned in this post? cf. fog's requests sources and fog's models sources.

You should be able to do:

storage.copy_object('old_bucket', 'old_filename', 'new_bucket', 'new_filename')

or

file.copy('new_bucket', 'new_filename')

Destroying the original file after a successful copy remains necessary though.



来源:https://stackoverflow.com/questions/13981069/how-do-i-rename-a-file-with-fog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!