Yesod rawRequestBody
具有以下类型签名:
rawRequestBody :: MonadHandler m => Source m ByteString
http-conduit具有此功能,可将源转换为RequestBody
:
requestBodySource :: Int64 -> Source (ResourceT IO) ByteString -> RequestBody
我希望能够将rawRequestBody
转换为S3对象,方法是将其转换为处理程序中的RequestBody
,ResourceT IO ~ MonadHandler
不会计算我似乎无法做MonadHandler m => m -> ResourceT IO
我试过了:
transPipe
- 如果我们从Source Handler ByteString
获得rawRequestBody
,那么获得ByteString
的唯一方法就是consume
,即} p>
transPipe ??? rawRequestBody :: Source (ResourceT IO) ByteString
handlerToIO
- 但似乎请求正文已被清除,因此无法获得任何数据
请帮助:)