我们最近搬到了一个提供有限存储空间的新网络主机上,因此我们正在尝试将所有用户上传的文件(头像、文件等)通过Paperclip gem上传到Amazon S3。我现在正在尝试批量迁移与不同模型对应的几百个文件。
我找到了这个文档,介绍了一个巧妙的Paperclip rake任务:
我找到了这个文档,介绍了一个巧妙的Paperclip rake任务:
rake paperclip:refresh:missing_styles
这个命令为我完成了部分工作,但我注意到它只设置文件结构而没有发送任何数据 - 此外,在使用has_attached_file
调用中的:styles
哈希定义的任何缩略图也没有设置。也就是说,我在我的一个模型上有以下的paperclip设置:class User < ActiveRecord::Base
has_attached_file :avatar,
:styles => {
: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文档不太好。