有没有关于如何在Haskell中下载大文件的建议?我认为Http.Conduit是一个很好的库,但它是如何解决这个问题的呢?它的文档中有一个例子,但它不适用于大文件的下载,它只能下载一个文件:
我希望能够下载大文件而不会耗尽内存,例如在性能方面有效地完成下载,同时能够"稍后"继续下载它们,即首先下载一部分,然后再下载另一部分。
我还发现 hackage上的download-curl软件包,但我不能确定它是否适合我,或者它是否像我需要的那样分块下载文件。
import Data.Conduit.Binary (sinkFile)
import Network.HTTP.Conduit
import qualified Data.Conduit as C
main :: IO ()
main = do
request <- parseUrl "http://google.com/"
withManager $ \manager -> do
response <- http request manager
responseBody response C.$$+- sinkFile "google.html"
我希望能够下载大文件而不会耗尽内存,例如在性能方面有效地完成下载,同时能够"稍后"继续下载它们,即首先下载一部分,然后再下载另一部分。
我还发现 hackage上的download-curl软件包,但我不能确定它是否适合我,或者它是否像我需要的那样分块下载文件。
http-client
是http-conduit
的依赖之一。 - Sibi