Internet explorer amazon s3无法在IE中打开pdf文件

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

我上传了一个pdf到s3,并使用签名url。将AmazonHeader传递给内容处置(我将返回内容处置的响应头)。为此,我在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打开

我不知道我是否真的需要内容处理标题。因为当我从本地主机/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标记中?