【问题标题】:AWS S3 - Allow public to view HTML filesAWS S3 - 允许公众查看 HTML 文件
【发布时间】:2019-09-15 06:58:16
【问题描述】:

我希望允许公共用户在其浏览器上查看位于 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,而不是实际 URL)

当用户访问此 URL 时,浏览器不会查看 HTML 文件,而是下载该文件。

如何指定此文件是要在浏览器上加载和查看,而不是下载?

【问题讨论】:

  • 您也可以通过在存储桶上启用网站托管来实现此目的;我们定期使用非常相似的方法将文件上传到 S3,并且我们不传递 ContentType,它们直接从 S3 存储桶以 HTML 文件的形式提供。

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


【解决方案1】:

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

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

另见Upload Image into S3 bucket using Api Gateway, Lambda funnction中给出的解释和链接

【讨论】:

    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 2011-11-19
    • 2019-07-04
    相关资源
    最近更新 更多