【问题标题】:Migrating from local paperclip storage to S3从本地回形针存储迁移到 S3
【发布时间】: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


【解决方案1】:

看起来我需要在这方面超越 ruby​​,s3cmd 似乎是最适合这类工作的工具。就我而言,sync 命令起到了作用:

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

【讨论】:

  • 太棒了。这为我解决了整个资产同步的废话。很遗憾,我需要六个单独的工具才能使一切正常工作(我确信资产预编译应该可以完成工作)。
猜你喜欢
  • 2019-03-02
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 2014-05-08
  • 2015-02-03
  • 2013-06-02
  • 2013-09-09
相关资源
最近更新 更多