如何管道' rawRequestBody '到' requestBodySource '



Yesod有以下类型签名的rawRequestBody:

rawRequestBody :: MonadHandler m => Source m ByteString

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

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

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

我试过:

transPipe -如果我们从rawRequestBody得到Source Handler ByteString,那么得到ByteString的唯一方法似乎是consume它,即

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

handlerToIO -然而,似乎请求体被清除,因此不会有任何可用的数据

请帮忙:)

函数waiRequest将返回WAI请求值。你可以使用sourceRequestBody来获取Source

相关内容

  • 没有找到相关文章

最新更新