5

我们需要将大数据作为 URL 的一部分发送,这些数据将由 Angular 读取以呈现页面。网址超过 10000 个字符。但是云端返回低于错误 -

错误的请求。由云端(CloudFront)生成请求ID:I2fOApzZr4psKrWsY6abezp5R0m30zKDKE7c0MuB_JkjWbvxz5GVnQ==

浏览器控制台返回错误代码 413 并显示以下消息 -

加载资源失败:服务器响应状态为 413(请求实体太大)

云端是否有任何设置可以允许接受大型 URL 请求。

我知道在 apache 上有像 LimitRequestBody 这样的设置可以允许大量输入,但是请求没有到达 apache 并且由 cloudfront 本身出错。

当我玩字符数时 - 8226 个字符后云端中断。

4

1 回答 1

6

这不受支持。CloudFront 有这些硬性限制,这对于大多数应用程序来说都是合理的:

请求的最大长度,包括标头和查询字符串:20,480 字节

URL 的最大长度:8,192 字节

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html

8,226 - 8,192 = 34 之间的明显差异可能是由于您的主机名长度以及http://如果您正在计算它。CloudFront 的文档说“URL”,但该限制实际上可能仅适用于路径 + 查询字符串的组合长度,因为Host:在实际 HTTP 协议中,标头与请求的其余部分是分开的。

上述限制以及其他一些限制似乎无法协商。

其他限制,例如带宽 (40 Gbps)、每个 AWS 账户的 Web 分配数量 (200) 只是默认限制,您可以通过向 AWS 支持提交描述您的使用案例的请求来增加这些限制,但这似乎并没有就是这样,在这里。

由于某些身份验证问题,Angular 无法直接调用 api。

这听起来像是对代理 REST API 的 ajax 调用的情况,该 API 从需要授权的源中获取数据,因此浏览器端代码不必......也许在 API Gateway 后面的 Lambda 中。

于 2016-10-25T22:36:02.243 回答