【发布时间】:2014-01-21 14:27:45
【问题描述】:
我们最近迁移到了一个新的网络主机,它提供有限的存储空间,因此我们正在尝试将通过 Paperclip gem 上传的所有用户上传(头像、文件等)移动到 Amazon S3。我有数百个文件,它们都对应于我现在正在尝试迁移的不同模型。
我发现 this document 介绍了一个漂亮的回形针 rake 任务:
rake paperclip:refresh:missing_styles
这个命令为我做了一些工作,但是,我注意到它只是设置文件结构而不发送任何数据 - 此外,它没有设置使用 has_attached_file 调用中的 :styles 散列定义的任何缩略图.即,我在我的一个模型上设置了以下回形针:
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 存储桶,我可以看到所有目录都已正确设置并且每个附件都已正确设置,但仅适用于原始图像文件,它们都是 0 字节。我误解了这个命令的用法吗?我找不到任何其他工具可以将整个文件目录批量上传到 S3,如果那里有一个安全的工具已经涵盖了这一点而无需付款,那么我会敞开心扉。我尝试构建一个 ruby 脚本来插入他们的 SDK 并手动上传这些文件,但他们的 Ruby 文档不是很好。
【问题讨论】:
-
Paperclip/S3 集成对您有用吗?即,如果您在应用程序上上传全新的图像,它最终会出现在 S3 上吗?这个问题的答案对于给出任何合理的建议是必要的!
-
@LAW 漂亮。唯一的问题是尝试在那里获取已经存在的文件。
标签: ruby-on-rails ruby amazon-s3 paperclip