2

Yesod 具有rawRequestBody以下类型签名:

rawRequestBody :: MonadHandler m => Source m ByteString

http-conduit 具有将源转换为 的功能RequestBody

requestBodySource :: Int64 -> Source (ResourceT IO) ByteString -> RequestBody

我希望能够通过将其转换为内部处理程序rawRequestBody来将其流式传输到 S3 对象,不计算而且我似乎做不到RequestBody ResourceT IO ~ MonadHandlerMonadHandler m => m -> ResourceT IO

我试过了:

transPipe- 如果我们从中得到Source Handler ByteStringrawRequestBody似乎唯一的方法就是得到ByteStringconsume,即

transPipe ??? rawRequestBody :: Source (ResourceT IO) ByteString

handlerToIO- 但是似乎请求正文已被清除,因此不会有任何数据可用

请帮忙 :)

4

1 回答 1

1

函数waiRequest将返回 WAI请求值。您可以使用sourceRequestBody从中获取Source

于 2015-07-17T04:51:18.243 回答