Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AmazonS3上的自定义标题_Amazon Web Services_Amazon S3_Http Headers - Fatal编程技术网

Amazon web services AmazonS3上的自定义标题

Amazon web services AmazonS3上的自定义标题,amazon-web-services,amazon-s3,http-headers,Amazon Web Services,Amazon S3,Http Headers,在AmazonS3上是否可以使用任意命名的自定义标题 例如,我使用一个指向AmazonS3的CDN作为源服务器,为了在CDN上启用高级功能,我需要使用一个自定义头x-something-something 我认为使用x-amz-meta-(某物)可以做到这一点,但是如果没有amz,像x-(某物)-(某物)这样更一般的东西呢 我认为他们不可能这样做。它们涵盖了缓存和浏览器互操作性所需的主要标题 我认为他们只允许前缀为x-amz-meta-的自定义头是安全的,这可能是为了避免在将来更新api时与用户

在AmazonS3上是否可以使用任意命名的自定义标题

例如,我使用一个指向AmazonS3的CDN作为源服务器,为了在CDN上启用高级功能,我需要使用一个自定义头
x-something-something

我认为使用
x-amz-meta-(某物)
可以做到这一点,但是如果没有
amz
,像
x-(某物)-(某物)
这样更一般的东西呢


我认为他们不可能这样做。它们涵盖了缓存和浏览器互操作性所需的主要标题

我认为他们只允许前缀为
x-amz-meta-
的自定义头是安全的,这可能是为了避免在将来更新api时与用户选择的头发生冲突


如果您需要将自定义属性附加到对象,那么在客户端应用程序中解析出
x-amz-meta-
应该很简单。

这篇漂亮的文章解释了这一切

tldr:


你不能只使用S3。您需要通过使用CloudFront和LambdaLambda@Edge。它是Lambda和CloudFront之间的集成。它允许您在CloudFront中运行Lambdas。这允许您更改标题和其他内容。因此,如果您可以通过CloudFront访问S3,那么这可能是一个可行的选择。

我可以使用。我编写了一个同步脚本,使用AWS客户端工具上的
--cache control
参数同步我的静态站点,然后手动重置它,并为几个特定文件添加几个其他标题:

cd/cd目录

#删除当前站点
aws s3 rm s3://yourbucket--递归--排除“logs/*”

#上载新站点,将所有文件的缓存头设置为1个月
aws s3同步。s3://yourbucket--exclude.idea/*'--exclude.git/*'--exclude.gitignore'--cache control max age=2592000

#覆盖某些文件的缓存头
python/pathToS3cmd/s3cmd modify--add header=“缓存控制:无缓存,无存储,必须重新验证”s3://yourbucket/somefile.html
python/pathToS3cmd/s3cmd/s3cmd modify--add header=“Expires:0”s3://yourbucket/somefile.html
python/pathToS3cmd/s3cmd/s3cmd modify--add header=“Pragma:no cache”s3://yourbucket/somefile.html


如果您控制客户端应用程序,那么以这种方式前缀的头不能完成什么任务呢。。。但如果是第三方的话,那就没那么微不足道了@Jeff我想如果你不直接访问AWS,你就会受到你使用的任何东西的限制。谢谢,我想知道为什么我不能自己设置自定义标题。
x-amz-meta-
前缀确实做到了这一点(亚马逊对这一事实的记录很差)。我正在使用他们的静态网站托管解决方案,我想设置x-Frame-Options。但是现在我不能,我需要考虑一些其他的解决方案,它有一些缺点,可以忽略日志、IntelliJ和Git文件。我把它作为实用同步脚本的一个很有帮助的例子放在这里。不幸的是,只支持一组受限的头文件。不过,支持与标准缓存控制相关的标头。另见