如何在AWS S3中设置自定义响应标头

use*_*853 9 amazon-s3 amazon-cloudfront service-worker

我想将我的应用程序带到离线模式,我想注册一个服务工作者.我的文件托管在AWS S3中,我在我的存储桶根目录中创建了worker.js. 我可能需要返回自定义标头"Service-Worker-Allowed"以响应AWS S3 for worker.js当前自定义标头需要具有x-amz-meta标头,我无法使用它.无论如何使用Cloudfront或Cloudfare添加该标头?还是其他任何建议?

Lea*_*ner 11

您无法使用s3或cloudfront设置自定义响应标头.

使用AWS时,您有两种可能的解决方法.

  1. 代理您的请求.即使用在ec2上运行的nginx/haproxy
  2. lambda@edge.

选项2 lambda@edge是一个更简单的解决方案.它旨在从云端边缘节点运行lambda函数.您可以使用lambda @ edge运行自定义JavaScript代码.您可以将代码配置为在将http请求发送到Cloudfront之前或从cloudfront接收到http响应之后运行.这允许您设置自定义请求或响应标头.有关如何执行此操作的详细说明,请参阅https://medium.com/@tom.cook/edge-lambda-cloudfront-custom-headers-3d134a2c18a2.


hri*_*esh 6

在 AWS S3 中,单击对象并转到其设置,您可以在元数据部分添加自定义标头。只需单击添加元数据即可。

这也可以在上传数据时以编程方式完成。所有 api 都支持附加元数据。

  • 这不适用于自定义标头。仅标准标头 (13认同)

Jor*_*ley 5

我认为现在的答案与 Cloudfront 的响应标头策略不同 在此输入图像描述

看起来它做了正确的事情,如下所示

在此输入图像描述