是否有可能在Amazon S3上使用任意命名来定制标题?Amazon S3上的自定义标题
例如,我使用指向Amazon S3的CDN作为原始服务器,并且为了启用CDN上的高级功能,我需要使用自定义标头“x-something-something”...
我发现可以用“x-amz-meta-(something)”来做到这一点,但是如果没有amz,那么更像“x-(something) - (something)”的东西呢?
是否有可能在Amazon S3上使用任意命名来定制标题?Amazon S3上的自定义标题
例如,我使用指向Amazon S3的CDN作为原始服务器,并且为了启用CDN上的高级功能,我需要使用自定义标头“x-something-something”...
我发现可以用“x-amz-meta-(something)”来做到这一点,但是如果没有amz,那么更像“x-(something) - (something)”的东西呢?
我不认为这是可能与他们的current API。它们涵盖了缓存和浏览器互操作所需的主要标题。
我认为他们是安全的,只允许x-amz-meta-
前缀自定义标题,可能会保持与用户选择的标题在未来更新api时发生冲突。
如果您需要附加到您的对象的自定义属性,解析出您的客户端应用程序中的x-amz-meta-
应该是微不足道的。
这个美丽的文章解释了这一切 https://medium.com/@tom.cook/edge-lambda-cloudfront-custom-headers-3d134a2c18a2
tldr:
您不容只做与S3。您需要通过Lambda @ Edge使用Cloudfront和lambda。这是Lambda和CloudFront之间的整合。它允许您在CloudFront内运行Lambdas。这使您可以在其他事情中更改标题。因此,如果您可以通过CloudFront访问您的S3,那么这可能是一个可行的选择。
我能用s3cmd tool实现这个功能。我写了同步我使用的AWS客户端工具--cache-control
参数静态网站,然后手动重新启动它,并增加了一些其它的头几个特定的文件同步脚本:
CD/appropriatedirectory
#删除当前网站
AWS S3 RM S3:// yourbucket --recursive --exclude '日志/ *'#上传新的网站,缓存标头设为1个月的所有文件
AWS S3同步。 s3:// yourbucket --exclude'.idea/*'--exclude'.git/*'--exclude'.gitignore'--cache-control max-age = 2592000#覆盖缓存头某些文件
python/pathToS3cmd/s3cmd modify --add-header =“Cache-Control:no-cache,no-store,must-revalidate”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
这有一些无用的日志,IntelliJ和Git文件。我把它作为实用同步脚本的一个有希望的例子。 – 2017-09-22 18:38:26
你不能用这种方式添加头文件来完成什么? – Kekoa 2012-01-18 21:10:39