我将pdf上传到s3并使用了签名网址。传递amazonHeaders进行内容处理(我正在回顾内容处置的响应头)。为此,我在KNOX
中的client.js中添加了一个补丁var signature = auth.signQuery({
amazonHeaders: options && options.headers,
secret: this.secret,
date: epoch,
resource: resource,
verb: (options && options.verb) || 'GET',
contentType: options && options.contentType,
token: this.token,
});
并传递options.headers
headers = "response-content-disposition:attachment; filename=#{file._id}"
但是我无法在IE中打开它,我可以在chrome中打开它。
我根本不知道我是否真的需要内容处理标题。因为当我尝试从本地主机/ expess nodejs server.it发送相同的响应。它在IE中自动打开。
这是Amazon / S3的回复
答案 0 :(得分:1)
屏幕截图中的响应标题未显示Content-Disposition标题,因此该部分无效 - 但我不知道这是否是您的IE问题。
如果您确实想要Content-Disposition: attachment
您无需修改knox(任何更多)以添加自定义响应标头。你可以这样做:
var headers = { 'response-content-disposition': 'attachment;filename=test.pdf'};
var expires = new Date(); expires.setYear(2020);
var url = client.signedUrl('/test.pdf', expires, { qs: headers });
(我认为您的代码中不需要#{file._id}
,这看起来像是来自ruby源的复制粘贴错误。)