S3 静态文件上的 HTTP 400

问题描述

我们在获取一些静态文件时(在我们的错误跟踪工具中)发现了一些 http 400 问题。

此外,我们的 API 网关中有日志表明它将请求重定向到响应 400 的 S3。

这不是我们的 CDN,也不是我们的 API 网关。

为什么 S3 会对静态文件响应 400?

到目前为止,我们在任何地方都找不到任何关于它的确切信息,但是一些大约 400 的通用资源指出了某些 HTTP 标头的问题:

解决方法

由于我们无法手动重现访问我们系统的情况,因此我们开始尝试使用 Postman 获取带有一些意外标头的静态文件。

我们终于可以通过发送大量 Cookie 来快速重现该问题。

我们的假设是,Amazon S3 的静态网站可能有一些配置会阻止带有某些特定长标头/cookie 的请求。

一旦我们找不到在 S3 上配置它的方法,我们就向 API 网关添加了一个插件,当它是静态文件请求时,它会在将 cookie 重定向到 S3 之前删除它(它不是t 必需)。

在那次更改之后,我们监控了我们的错误跟踪工具,静态网站上的 http 400 出现次数降至 0。