业务场景是文件上传。
由于会有非常大的文件,所以希望在不会cache整个请求的前提下就进行文件上传,否则太慢,但是又希望支持重试.
所以是否能通过request_body_filter_by_lua的代码实现,使用ngx.ctx实现自己的body cache,每次body读取并传输的时候,copy一份到ngx.ctx。
如果需要重试的话,先从ngx.ctx中取出已传输部分的request body cache进行传输,再传输request body 中剩余部分。

这个case能够实现吗?
目前翻遍了openresty的文档,似乎没有办法实现这个操作,没有任何request body读取的入口钩子。

    开启了分块传输之后,openresty可以逐块接收请求体,并逐块传递给上游服务器,而不需要等待完整的文件上传完成,分块传输默认是开启的chunked_transfer_encoding on | off,但是重试貌似不支持。

      Write a Reply...