Amazon s3 将特定的头到头响应添加到AWS S3文件

Amazon s3 将特定的头到头响应添加到AWS S3文件,amazon-s3,http-headers,aws-lambda-edge,Amazon S3,Http Headers,Aws Lambda Edge,我想知道文件的大小,以决定是否要发出get请求来下载它。文件在我的AWS S3存储桶中 我知道向同一个URL发出HEAD请求是一个好主意,因此它会返回“内容长度”,尽管我的前端(浏览器上运行的javascript代码)无法提供该长度 我已经读到,我需要将下面的标题设置为HEAD响应: "Access-Control-Expose-Headers": "Content-Length" 我还发现我可以使用Lambda@Edge将此头添加到响应中,但我没有使用Cloudfront来提供此文件。触发L

我想知道文件的大小,以决定是否要发出get请求来下载它。文件在我的AWS S3存储桶中

我知道向同一个URL发出HEAD请求是一个好主意,因此它会返回“内容长度”,尽管我的前端(浏览器上运行的javascript代码)无法提供该长度

我已经读到,我需要将下面的标题设置为HEAD响应:

"Access-Control-Expose-Headers": "Content-Length"
我还发现我可以使用Lambda@Edge将此头添加到响应中,但我没有使用Cloudfront来提供此文件。触发Lambda@Edge直接从S3(作为一个事件)开始,我找不到处理HEAD请求的方法,只在其中放置、发布和删除


有没有包含此标题的想法?

整个问题围绕着跨来源资源共享——CORS。为此,需要在铲斗上启用CORS支持

具体地说,
指令指定了将出现在S3将生成的
访问控制公开标题
响应标题中的标题,并启用和配置了CORS

例如:

<CORSConfiguration>
 <CORSRule>

  <AllowedOrigin>https://www.example.com</AllowedOrigin>
   <AllowedMethod>HEAD</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
   <ExposeHeader>Content-Length</ExposeHeader>
 </CORSRule>
</CORSConfiguration>

https://www.example.com
头
*
内容长度

还要注意,这是不正确的:

触发Lambda@Edge直接来自S3(作为事件)

Lambda函数可以从S3事件触发,但使用Lambda@Edge检查或修改请求或响应与S3事件无关,只能在CloudFront中进行