我试图通过我的Rails应用程序访问我的S3服务器上的文件。目前,该应用程序能够通过aws-sdk v2 gem创建presigned_url
,然后重定向以显示文件(我主要使用图像作为文件)。这一切都工作得很好,但不是简单地在浏览器中显示文件,我真的很想触发该文件的自动下载。用presigned_url触发下载S3文件
因为它的立场与重定向,我的代码如下:
def get
asset = current_user.assets.find_by_id(params[:id])
if asset
s3 = Aws::S3::Resource.new
bucketlink = s3.bucket(ENV['S3_BUCKET_NAME']).object(asset.uploaded_file.path).presigned_url(:get, expires_in: 3600)
redirect_to bucketlink
else
flash[:error]="Don't be cheeky! Mind your own assets"
redirect_to assets_path
end
end
谁能给我一个线索,我怎么能触发下载这个文件?提前谢谢了。
哇,我印象深刻。非常感谢。 – neanderslob
对于下一个人来说,我最终并不需要文件名,所以我最终使用了以下内容:'bucketlink = s3.bucket(ENV ['S3_BUCKET_NAME'])。object(asset.uploaded_file.path)。 presigned_url(:get,expires_in:3600,response_content_disposition:'attachment')' – neanderslob
@neanderslob我试图做这个确切的事情,但运行到一个无限循环问题[这里概述](http://stackoverflow.com/questions)/42687386 /轨道下载-的-AWS-S3采用-presigned-后致命的异常-文件)。你碰到过这个吗?你怎么称呼你的get方法? – CChandler81