Bri*_*ian 3 html permissions amazon-s3 amazon-web-services node.js
我希望允许公共用户在其浏览器上查看位于 AWS S3 存储桶上的 HTML 文件。这些 HTML 文件通过 node.js 创建并上传到我的 S3 存储桶,并生成链接到该文件的 URL。
我正在使用此方法上传 HTML 文件:
s3.upload({
Bucket: bucket,
Key: "HTMLFiles/file.HTML",
Body: fileStream,
ACL: 'public-read'
}, function (err, data) {
if (err) {
console.log("Error: ", err);
}
if (data) {
console.log("Success: ", data.Location);
}
}).on('httpUploadProgress', event => {
console.log(`Uploaded ${event.loaded} out of ${event.total}`);
});
Run Code Online (Sandbox Code Playgroud)
运行脚本时,生成的 URL 如下所示:
https://bucket-name.s3.region.amazonaws.com/HTMLFiles/file.html
(显然这只是一个示例 URL,而不是实际的 URL)
当用户访问此 URL 时,浏览器不会查看 HTML 文件,而是下载该文件。
我如何指定该文件是在浏览器上加载并查看,而不是下载?
这是因为缺少内容类型,因此浏览器不知道您的文件应被解释为 HTML。
请添加ContentType: 'text/html'
传递给 的参数s3.upload
。
另请参阅使用 Api 网关、Lambda 函数将图像上传到 S3 存储桶中给出的说明和链接