Haskell で大きなファイルをダウンロードする方法について何か提案はありますか? Http.Conduit は、ライブラリがこれに適したライブラリであると考えています。しかし、それはどのようにこれを解決しますか?ドキュメントに例がありますが、大きなファイルのダウンロードには適していません。ファイルをダウンロードするだけです。
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"
私が望むのは、大きなファイルをダウンロードでき、RAM が不足しないようにすることです。たとえば、パフォーマンスなどの点で効果的に実行できます。できれば、「後で」ダウンロードし続けることができます。つまり、「一部を今、別の部分を後で」という意味です。 .
hackage で download-curl パッケージも見つけましたが、これが適切であるか、必要なようにファイルをチャンクごとにダウンロードするかについては確信が持てません。