从本地回形针存储迁移到S3

我们最近搬到了一个新的虚拟主机,提供有限的存储空间,因此我们试图将通过Paperclip gem上传的所有用户上传(头像,文件等)移动到Amazon S3。 我有几百个文件都对应不同的模型,我现在正试图整体迁移。

我发现这个文件引入了一个漂亮的回形针rake任务:

rake paperclip:refresh:missing_styles

这个命令为我做了一些工作,但是,我注意到它只是设置文件结构而不发送任何数据 – 此外它没有设置使用has_attached_file调用中的:styles hash定义的任何缩略图。 也就是说,我在我的一个模型上设置了以下回形针:

 class User  { :thumb => "100x100#", :small => "150x150>", :medium => "200x200" } end 

运行命令后,这是一些示例输出:

 $ rake paperclip:refresh:missing_styles Regenerating User -> avatar -> [thumb, :small, :medium] Regenerating Mercury::Image -> image -> [:medium, :thumb] Regenerating Profile -> image -> [:home_feature, :large, :medium, :thumb] Regenerating Page -> preview -> [:portfolio] Regenerating Category -> default_image -> [:home_feature, :large, :medium, :thumb] 

导航到我的S3 Bucket我可以看到所有目录都已正确设置和每个附件,但仅适用于原始图像文件,它们都是0字节。 我误解了这个命令的用法吗? 我找不到任何其他工具将批量文件的整个目录上传到S3,如果有一个安全的工具已经覆盖了这个而不需要付款那么我就是张开耳朵。 我已经尝试构建一个ruby脚本来插入他们的SDK并手动上传这些文件,但他们的Ruby文档并不好。

看起来我需要超越ruby这个, s3cmd似乎是这类工作最合适的工具。 就我而言, sync命令可以解决这个问题:

 s3cmd sync my-app/public/system/ s3://mybucket