如何生成可查看的s3 url nodejs

时间:2017-10-07 14:25:25

标签: node.js amazon-s3 aws-sdk

我使用以下代码获取已签名的网址。我收到一个签名的网址,一旦我打开网址下载文件。但我想要一个我可以显示文件的网址。就像在新标签页中打开文件一样。

我正在使用aws-sdk包并生成s3,如下所示

const s3 = new AWS.S3();

s3.getSignedUrl('getObject', {
            Expires: options.expires || 300,
            Bucket: config.awsBucket,
            Key: key,
            // ACL: 'public-read',
            ResponseContentDisposition :'inline;filename=report.pdf'}, 
          function(err, url) {
            if (err) {
                return deferred.reject(err);
            }
            return deferred.resolve(url);
        });

有谁知道如何生成我可以显示文件的网址。

1 个答案:

答案 0 :(得分:0)

如果您在上传文件时未正确设置Content-Type,则会出现此行为,因为浏览器正确确定的default type is binary/octet-stream无法以内联方式显示。

您可以通过将ResponseContentType请求中的getSignedUrl()设置为正确的值来解决此问题。

PDF文件的正确类型为application/pdf