我如何将大的编码 base64 字符串发送到 rails 服务器 API

How I can send a large encoded base64 string to rails server API

我正在尝试从客户端向服务器发送大的 base64 编码字符串 rails API 然后在服务器端对其进行解码并将文件上传到 S3 或任何其他服务。当我尝试发送大型编码的 base64 字符串时,我遇到了以下错误:

2018-01-12 14:39:51 +0530: HTTP parse error, malformed request (): #<Puma::HttpParserError: HTTP element QUERY_STRING is longer than the (1024 * 10) allowed length (was 53799)>
---

因为 base 64 编码的字符串非常大。我附上截图请看

我正在使用 rails 5.2 beta 和 puma 服务器。如果我需要分享更多信息或更正任何内容,请告诉我

您正在尝试 POST 一个大对象作为查询参数,这不是参数的预期用途。

您需要 post 它作为 multipart/form-data。

有关如何使用 rest-client gem 执行此操作的示例,请参阅 this Whosebug 问题。

如您所见:What is the maximum possible length of a query string?

有些客户端可能会暗示对查询字符串的限制。

您需要做的是在请求正文中接受此字符串。由于您使用 Postman,您可以执行以下操作:

post with body

Rails 默认情况下将解析这些值的值,并且它将在 @params 哈希上可用。