我正在使用NodeJS上传一个文件到s3,并在上传时设置适当的contentType供pdf使用。看上去像这样,
const params = {
Bucket: "noob_bucket",
Key: newFileName,
Body: fs.createReadStream(path),
ContentType: 'application/pdf',
ACL: 'private',
};
现在的问题是,当我试图使用已签名的URL显示pdfon浏览器时,只有当文件大小大约小于25 am时,它才会在浏览器中打开,否则它只是在下载文件。
有人能帮我解决这个问题吗。我也有大于50 as的文件。
请帮我把这个修好。提前感谢
发布于 2021-12-11 17:44:11
控制PDF文件是否以附件形式显示或下载的标题是content-disposition
头。如果您希望在浏览器中显示内容,则应该是inline
。
在上传文件时,可以在参数中显式设置它:
const params = {
Bucket: "noob_bucket",
Key: newFileName,
Body: fs.createReadStream(path),
ContentType: 'application/pdf',
ContentDisposition: 'inline',
ACL: 'private',
};
此外,当您请求一个预先签名的url时,您可能希望设置它:
const command = new GetObjectCommand({
Bucket: 'noob_bucket',
Key: newFileName,
ResponseContentDisposition: 'inline',
ResponseContentType: 'application/pdf',
});
const url = await getSignedUrl(s3Client, command, { expiresIn: 3600 });
https://stackoverflow.com/questions/70317106
复制相似问题