下载带有 HTTP“授权”标头集的文件
Posted
技术标签:
【中文标题】下载带有 HTTP“授权”标头集的文件【英文标题】:Download a file with HTTP "Authorization" header set 【发布时间】:2013-02-24 07:18:27 【问题描述】:我正在向我的 RESTful API(使用 Rails 制作)中的资源提供文件上传。当您GET /resource/123/attachment
时,具有相应 MIME 类型的文件将发送到浏览器。 (可以是任何东西......图像、PDF、文本文件等等)
如果有任何兴趣,可以这样做:
send_file(contract.attachment.path, :filename => contract.attachment.original_filename)
但由于上传的文件是基于用户且保密的,因此需要使用令牌设置Authorization
HTTP 标头。
所以我考虑使用jQuery.get
来设置HTTP 标头。但是我该如何处理来自服务器的响应呢?它应该表现得像您单击了一个普通链接(只是在请求之前设置了一个 HTTP 标头)
【问题讨论】:
您可以接受基于令牌的解决方案(而不是 http 标头)吗?我的意思是 GET /resource/123/attachment?token=111222333444 【参考方案1】:如果您可以控制服务器输出并且图像不是太大,您可以使用 base64 图像并执行以下操作:
$.ajax(
url : '/resource/123/attachment',
processData : false,
).done(function(data)
$("#YOUR_IMG_ID").attr("src", "data:image/png;base64,"+data);
);
另一种选择是您可以编写备用身份验证,以允许您在查询字符串中添加一些内容,例如 。例如,您可以查看 oAuth 或其他东西来签署请求。
【讨论】:
以上是关于下载带有 HTTP“授权”标头集的文件的主要内容,如果未能解决你的问题,请参考以下文章