Rails直接从S3下载文件,内容配置=附件?

时间:2015-05-15 15:12:31

标签: ruby-on-rails amazon-web-services amazon-s3

这是我的控制器

Cotroller

def download
    data = open(@attachment.file.url).read

    @attachment.clicks = @attachment.clicks.to_i + 1
    @attachment.save
    send_data data, :type => @attachment.content_type, :filename => @attachment.name
  end

示例:

@attachment.file.url = "http://my_bucket.cloudfront.net/uploads/attachment/file/50/huge_file.pptx" 

我这样做了,但是如果 @attachement是一个巨大的文件(例如300MB),我的服务器崩溃了。 我想允许用户直接从我的AWS服务器在浏览器中下载文件吗?

2)提示:您是否建议从S3(存储它们)或使用CloudFront下载文件?

1 个答案:

答案 0 :(得分:2)

如果您使用的是carrierwave gem,可以尝试使用它来跟踪点击次数

def download
  @attachment.clicks.to_i += 1
  @attachment.save
  redirect_to @attachment.file.url(query: {"response-content-disposition" => "attachment;"})
end

参考: