我的应用程序中有一个下载链接,用户应该可以从中下载存储在 s3 上的文件。这些文件将在看起来像这样的 url 上公开访问
https://s3.amazonaws.com/:bucket_name/:path/:to/:file.png
下载链接在我的控制器中触发了一个动作:
class AttachmentsController < ApplicationController
def show
@attachment = Attachment.find(params[:id])
send_file(@attachment.file.url, disposition: 'attachment')
end
end
但是当我尝试下载文件时出现以下错误:
ActionController::MissingFile in AttachmentsController#show
Cannot read file https://s3.amazonaws.com/:bucket_name/:path/:to/:file.png
Rails.root: /Users/user/dev/rails/print
Application Trace | Framework Trace | Full Trace
app/controllers/attachments_controller.rb:9:in `show'
该文件肯定存在并且可以通过错误消息中的 url 公开访问。
如何允许用户下载 S3 文件?