* CI: Add support for GHC 8.10, stack and live-server testing
* Fix live-server tests for all platforms
* Fix windows tests
* Fix resourcet cleanup exceptions
* Mark minio-hs builds GHC 8.4, 8.8 on windows experimental
* Use minio with erasure code backend for tests
* Fix matrix combinations for cabal and stack
Co-authored-by: Krishnan Parthasarathi <kp@minio.io>
* Fix to build with GHC 8.8 and fix error handling bug
To work with the addition of MonadFail constraint to parseTimeM in the time
library, the underlying monad was changed from Either to Maybe as it has a
MonadFail instance.
* Update build to run tests against local minio server
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
- Add full examples for presignedGetObjectUrl and
presignedPutObjectUrl
- Lower-case `*URL` API functions to `*Url` to adopt a Haskell naming
convention
Finishes and fixes#35, #36 and #37.
This change adds 3 functions to main API: presignedGetObjectURL,
presignedPutObjectURL and presignedHeadObjectURL.
A fourth more generic API is added to `Network.Minio.S3API` -
makePresignedURL.
Additionally, refactors signing code for readability and the ability
to reuse for pre-signing.
* 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.