Internet explorer amazon s3无法在IE中打开pdf文件
我上传了一个pdf到s3,并使用签名url。将AmazonHeader传递给内容处置(我将返回内容处置的响应头)。为此,我在KNOX的client.js中添加了一个补丁Internet explorer amazon s3无法在IE中打开pdf文件,internet-explorer,pdf,amazon-s3,knox-amazon-s3-client,Internet Explorer,Pdf,Amazon S3,Knox Amazon S3 Client,我上传了一个pdf到s3,并使用签名url。将AmazonHeader传递给内容处置(我将返回内容处置的响应头)。为此,我在KNOX的client.js中添加了一个补丁 var signature = auth.signQuery({ amazonHeaders: options && options.headers, secret: this.secret, date: epoch, resource: resou
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打开
我不知道我是否真的需要内容处理标题。因为当我从本地主机/expss nodejs服务器尝试时,它会发送相同的响应。它在IE中自动打开
这是来自Amazon/S3的响应
屏幕截图中的响应标题没有显示内容处置标题,因此该部分不起作用-但我不知道这是否是IE的问题 如果您确实想要
内容处置:附件
您不需要修改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 });
这给了我一个类似的url
(我认为你不想在你的代码中使用
{file.\u id}
,这看起来像是一个复制粘贴错误,来自ruby源代码)。问题是只有Pdf。我尝试上传PNG,它工作正常。你是什么意思,你“无法在IE中打开它?”当你尝试时会发生什么?没有什么?错误?浏览器窗口充满了噪音?没有错误没有。只是..一个灰色的窗口..你使用的是什么版本的Windows和IE?您的pdf阅读器(及其版本)是什么?您是否尝试将pdf嵌入iframe或object标记中?