在S3上存储Scraped Images的最佳方法

时间:2016-01-01 23:38:52

标签: ruby-on-rails ember.js amazon-s3

为了给出一些上下文,我目前正在使用Rails API和Ember前端构建一个配方应用程序。为了获得食谱,我正在抓取某些网站并将信息存储在PG数据库中。

因为有很多图像我想开始在S3上存储它们。在过去,我使用Paperclip处理图像上传到S3,但由于我的rails应用程序只是一个API,我不确定最好的方法/工具是什么。有没有人做过类似的事情?

1 个答案:

答案 0 :(得分:1)

如果您的S3存储桶是公共可访问的(这是理想且高效的),只需使用S3网址作为图片,而不是通过Rails。

如果您必须通过Rails,因为您希望将S3存储桶保密(这种方法的扩展成本更高),您可以在控制器操作中检索S3对象并以这种方式提供服务。这可以使用send_data方法完成:this post

粗略的例子:

def MediaController < ApplicationController
  def s3_image
    bucket_get_result = G_CLIENT.execute(
      api_method: G_API.objects.get,
      parameters: {bucket: 'my_bucket', object: params.require(:object_name), alt: 'media'}
    )
    send_data bucket_get_result.body, :disposition => 'inline'
  end
end