[英]Rails download objects from amazon bucket s3 aws-sdk
我是RoR的新手。
我正在创建一个小型应用程序,可以从s3存储桶中上传,删除和下载mp3对象。 (使用aws-sdk gem)。
我无法创建正确的下载控制器。 我的应用正在从s3(Aws :: S3 :: Object:0x007feb59782368)下载带有对象引用的文本文件download。
所有帮助将不胜感激!
这是我的代码:
控制器>
def download
bucket = S3.bucket(S3_BUCKET.name)
obj = bucket.object(params[:song])
byebug
send_data obj
end
查看>
<%= link_to "download", "songs/download/?song=" + song.name %>
和byebug的响应:
(byebug) send_data obj
Rendering text template
Rendered text template (0.0ms)
Sent data (2.2ms)
"#<Aws::S3::Object:0x007fc3b1323c60>"
(byebug)
尝试使用send_file
而不是send_data
我考虑将HTTP 302发送到S3网址,并让客户端直接从S3下载对象。 通过让您的应用服务器代理响应,这意味着您的Rails应用程序进程将被束缚,同时它们会缓冲s3中的对象,然后将其沿着管道发送。 如果担心安全性(不想公开公开s3对象),则将其保密,并为有效期短的对象生成一个签名URL。
最简单的选择是创建一个与文件源的链接。 当他们单击该链接时,它将以新的水龙头打开并自动从S3下载。
另一个选择是使用下载功能,但我尚未阅读文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.