Rails 3 + Paperclip + Amazon S3 +下载所有图像

时间:2014-03-10 20:16:31

标签: ruby-on-rails ruby-on-rails-3 heroku amazon-s3 paperclip

背景

  • 我一直在Heroku上运行rails 3.X.X app 2年以上。
  • 用户上传的图像通过Paperclip存储在Amazon S3存储桶中。

我需要什么

  • 我想将所有已上传的图像(总共约5000张图像)下载到本地磁盘。
  • 我想降低执行此查询所需的成本。

问题

  • 我对Paperclip如何在S3上存储文件的了解已经逃过了我(该应用程序大约在3年前编写)。
  • 在S3控制台中查看存储桶的内容,列出了包含图像链接的元数据文本文件。
  • 我似乎无法在存储桶中找到任何图像文件(通过S3 Web控制台)。

解决方案?

  • 我尝试了各种应用程序,例如CyberduckBuckets,但他们都试图请求存储桶的内容。
  • 我的生产桶只包含描述图像位置的元数据文本文件,这似乎很奇怪;为什么我看不到控制台本身的图像?
  • 我可以运行一些简单的脚本来抓取所有图像吗?

1 个答案:

答案 0 :(得分:1)

您是否可以提供有关模型中声明的has_attached_file方法的其他信息?

假设你有has_attached_file :photo

,你可以这样做
Model.find_each do |record|
  puts record.photo.url
end

puts显然只会显示网址。您需要对列表进行迭代迭代并使用curl或wget获取它们。