Use streaming signature to avoid reading the body twice in PutObject
requests, where the body can be upto 5GIB.
Note that the body is signed only used when the connection is not
using TLS.
Current functionality only supported stream based
uploads using multipart, this meant that even for
small file sizes we were performing multipart operations
which is slower and unnecessary.
This PR fixes this behavior.
- Also add .stylish-haskell.yaml
- Re-implements `limitedMapConcurrently` using STM
- Dependencies clean up in cabal file
- Fix shadow warnings and other build warnings
* Make CopyPartSource constructor private
... and make individual record accessors exported. This change allows
adding of additional record members to CopyPartSource without breaking
applications.
* Move high-level copyObject functions to CopyObject module
* Make copyObject use SourceInfo, DestinationInfo
... to allow supporting features like client-side and server-side
encryption subsequently.
- fix warnings in tests/LiveServer.hs
This change makes copyObject use multipart strategy when the object to
be created has a size larger than 64 MiB. Previously this strategy was
used when the object is larger than 5GiB only.
* Performs server side copy of an object by creating a new object that
is a copy of an existing object or part of an existing object.
* The user may specify an object on server of any size, and optionally
specify a byte range to only copy a part of the object.
* Copy conditions are also supported.