AWS S3-允许公众查看HTML文件

时间:2019-04-25 19:09:35

标签: html node.js amazon-web-services amazon-s3 permissions

我希望允许公共用户在其浏览器上查看位于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}`);
});

运行脚本时,生成的URL如下所示:

https://bucket-name.s3.region.amazonaws.com/HTMLFiles/file.html

(显然,这只是示例网址,而不是实际网址)

当用户转到该URL时,浏览器将下载该文件,而不是查看HTML文件。

如何指定该文件应在浏览器中加载并查看,而不是下载?

1 个答案:

答案 0 :(得分:1)

这是因为缺少内容类型,所以浏览器不知道您的文件应解释为HTML。

请在传递给ContentType: 'text/html'的参数中添加s3.upload

另请参阅Upload Image into S3 bucket using Api Gateway, Lambda funnction

中的说明和链接