带有 aws 签名的大型 pdf 文件无法在浏览器中打开 url
Large pdf files are not opening in browser with aws signed url
我正在使用 NodeJS 将文件上传到 s3,并且在上传时为 pdf 设置了正确的 contentType。看起来像这样,
const params = {
Bucket: "noob_bucket",
Key: newFileName,
Body: fs.createReadStream(path),
ContentType: 'application/pdf',
ACL: 'private',
};
现在的问题是,当我尝试在浏览器上使用签名 URL 显示 pdf 时,只有当文件大小大约小于 25MB 时,它才会在浏览器中打开,否则它只是下载文件。
谁能帮我解决这个问题。我也有大于 50MB 的文件。
请帮我解决这个问题。提前致谢
控制 PDF 文件是否显示或作为附件下载的 header 是 content-disposition
header。如果你想让内容在浏览器中显示,应该是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 });
我正在使用 NodeJS 将文件上传到 s3,并且在上传时为 pdf 设置了正确的 contentType。看起来像这样,
const params = {
Bucket: "noob_bucket",
Key: newFileName,
Body: fs.createReadStream(path),
ContentType: 'application/pdf',
ACL: 'private',
};
现在的问题是,当我尝试在浏览器上使用签名 URL 显示 pdf 时,只有当文件大小大约小于 25MB 时,它才会在浏览器中打开,否则它只是下载文件。
谁能帮我解决这个问题。我也有大于 50MB 的文件。
请帮我解决这个问题。提前致谢
控制 PDF 文件是否显示或作为附件下载的 header 是 content-disposition
header。如果你想让内容在浏览器中显示,应该是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 });