S3: finish converting to aws library

Implemented the Retriever.

Unfortunately, it is a fileRetriever and not a byteRetriever.
It should be possible to convert this to a byteRetiever, but I got stuck:
The conduit sink needs to process individual chunks, but a byteRetriever
needs to pass a single L.ByteString to its callback for processing. I
looked into using unsafeInerlaveIO to build up the bytestring lazily,
but the sink is already operating under conduit's inversion of control,
and does not run directly in IO anyway.

On the plus side, no more memory leak..
This commit is contained in:
Joey Hess 2014-08-09 15:58:01 -04:00
parent a6da13c1e9
commit 3659cb9efb
3 changed files with 35 additions and 12 deletions

View file

@ -7,6 +7,8 @@ Sending a file to S3 causes a slow memory increase toward the file size.
Copying the file back from S3 causes a slow memory increase toward the
file size.
> [[fixed|done]] too! --[[Joey]]
The author of hS3 is aware of the problem, and working on it. I think I
have identified the root cause of the buffering; it's done by hS3 so it can
resend the data if S3 sends it a 307 redirect. --[[Joey]]