当客户端未在标头中发送内容长度时,rails v6 如何填充 REQUEST 的内容长度?
Posted
技术标签:
【中文标题】当客户端未在标头中发送内容长度时,rails v6 如何填充 REQUEST 的内容长度?【英文标题】:How does rails v6 fills REQUEST's content-length when a client doesn't send content-length in the headers? 【发布时间】:2021-12-07 19:45:46 【问题描述】:长话短说,我正在使用 node-fetch 将文件上传到 Rails 服务器。
该文件来自fs.createReadStream
= ReadStream。
https://github.com/node-fetch/node-fetch
注意:当body为Stream时,Content-Length不会自动设置。
正如自述文件中所说,当它是一个流时,请求的内容长度不会由 node-fetch 设置。
当使用 Rails v6 接收数据时,它会以某种方式设置请求的内容长度,即使客户端没有发送长度。 使用 Rails v5 接收相同数据时,不会设置内容长度。我正在尝试用他们在 v6 中所做的对 v5 进行猴子补丁。 有谁知道 v6 是怎么做到的?
【问题讨论】:
【参考方案1】:其实是美洲狮..https://github.com/puma/puma/pull/2287
v4.3.7 及更高版本已修复。https://github.com/puma/puma/blob/master/History.md#437--2020-11-30
【讨论】:
以上是关于当客户端未在标头中发送内容长度时,rails v6 如何填充 REQUEST 的内容长度?的主要内容,如果未能解决你的问题,请参考以下文章
.NET HttpClient - 当响应标头的内容长度不正确时接受部分响应
Apollo 客户端未在 Nextjs Lamda 中发送 JWT 不记名令牌
邮件未在 rails 上使用 devise、heroku 和邮戳发送