| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Network.HTTP.Download.Verified
- verifiedDownload :: (MonadReader env m, HasHttpManager env, MonadIO m, MonadLogger m) => DownloadRequest -> Path Abs File -> (Maybe Integer -> Sink ByteString (ReaderT env IO) ()) -> m Bool
- recoveringHttp :: (MonadMask m, MonadIO m) => RetryPolicy -> m a -> m a
- data DownloadRequest = DownloadRequest {
- drRequest :: Request
- drHashChecks :: [HashCheck]
- drLengthCheck :: Maybe LengthCheck
- drRetryPolicy :: RetryPolicy
- drRetryPolicyDefault :: RetryPolicy
- data HashCheck = (Show a, HashAlgorithm a) => HashCheck {}
- data CheckHexDigest
- type LengthCheck = Int
- data VerifiedDownloadException
- = WrongContentLength Request Int ByteString
- | WrongStreamLength Request Int Int
- | WrongDigest Request String CheckHexDigest String
Documentation
Arguments
| :: (MonadReader env m, HasHttpManager env, MonadIO m, MonadLogger m) | |
| => DownloadRequest | |
| -> Path Abs File | destination |
| -> (Maybe Integer -> Sink ByteString (ReaderT env IO) ()) | custom hook to observe progress |
| -> m Bool | Whether a download was performed |
Copied and extended version of Network.HTTP.Download.download.
Has the following additional features: * Verifies that response content-length header (if present) matches expected length * Limits the download to (close to) the expected # of bytes * Verifies that the expected # bytes were downloaded (not too few) * Verifies md5 if response includes content-md5 header * Verifies the expected hashes
Throws VerifiedDownloadException. Throws IOExceptions related to file system operations. Throws HttpException.
recoveringHttp :: (MonadMask m, MonadIO m) => RetryPolicy -> m a -> m a #
data DownloadRequest #
A request together with some checks to perform.
Constructors
| DownloadRequest | |
Fields
| |
drRetryPolicyDefault :: RetryPolicy #
Default to retrying thrice with a short constant delay.
data CheckHexDigest #
Constructors
| CheckHexDigestString String | |
| CheckHexDigestByteString ByteString | |
| CheckHexDigestHeader ByteString |
Instances
type LengthCheck = Int #
data VerifiedDownloadException #
An exception regarding verification of a download.
Constructors
| WrongContentLength Request Int ByteString | |
| WrongStreamLength Request Int Int | |
| WrongDigest Request String CheckHexDigest String |