首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有aws签名的url的浏览器中没有打开大型pdf文件

有aws签名的url的浏览器中没有打开大型pdf文件
EN

Stack Overflow用户
提问于 2021-12-11 16:53:02
回答 1查看 460关注 0票数 1

我正在使用NodeJS上传一个文件到s3,并在上传时设置适当的contentType供pdf使用。看上去像这样,

代码语言:javascript
运行
复制
const params = {
  Bucket: "noob_bucket",
  Key: newFileName,
  Body: fs.createReadStream(path),
  ContentType: 'application/pdf',
  ACL: 'private',
};

现在的问题是,当我试图使用已签名的URL显示pdfon浏览器时,只有当文件大小大约小于25 am时,它才会在浏览器中打开,否则它只是在下载文件。

有人能帮我解决这个问题吗。我也有大于50 as的文件。

请帮我把这个修好。提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-11 17:44:11

控制PDF文件是否以附件形式显示或下载的标题是content-disposition头。如果您希望在浏览器中显示内容,则应该是inline

在上传文件时,可以在参数中显式设置它:

代码语言:javascript
运行
复制
const params = {
  Bucket: "noob_bucket",
  Key: newFileName,
  Body: fs.createReadStream(path),
  ContentType: 'application/pdf',
  ContentDisposition: 'inline',
  ACL: 'private',
};

此外,当您请求一个预先签名的url时,您可能希望设置它:

代码语言:javascript
运行
复制
const command = new GetObjectCommand({
    Bucket: 'noob_bucket',
    Key: newFileName,
    ResponseContentDisposition: 'inline',
    ResponseContentType: 'application/pdf',
});
const url = await getSignedUrl(s3Client, command, { expiresIn: 3600 });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70317106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档