Commit Graph

141 Commits

Author SHA1 Message Date
Aditya Manthramurthy
522d49452f Remove dependency on text-format lib and fix bucket policy test (#86) 2018-05-11 17:48:34 -07:00
Harshavardhana
02b28bc100 api: Support single PUT on stream uploads (#84)
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.
2018-04-23 14:56:31 -07:00
Harshavardhana
6d20558098 Implement getBucketPolicy/setBucketPolicy (#82)
fixes #40
fixes #39
2018-03-27 12:38:58 +05:30
Aditya Manthramurthy
51b3e51d46
Switch to unliftio and lts-11.1 (#83)
- Also add .stylish-haskell.yaml
- Re-implements `limitedMapConcurrently` using STM
- Dependencies clean up in cabal file
- Fix shadow warnings and other build warnings
2018-03-26 14:04:25 -07:00
Harshavardhana
38b67b4dab
Add support for ContentLanguage and StorageClass (#80) 2018-03-19 18:50:38 -07:00
Krishnan Parthasarathi
09d71251da Fix pooToHeaders to associate right header names to values (#81) 2018-03-19 11:48:24 -07:00
Harshavardhana
37940ad170 Add putObjectOptions for PutObject (#71) 2018-01-16 14:29:17 +05:30
Harshavardhana
8be1ff429f Support GetObjectOptions for getObject and fGetObject (#72) 2017-12-07 13:17:24 +05:30
Krishnan Parthasarathi
fe7aef21b7 Make copyObject use SourceInfo, DestinationInfo (#73)
* 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
2017-12-04 07:24:48 -08:00
Aditya Manthramurthy
0d8f5c08e8 Add Bucket Notification APIs (#59)
- Adds get, put and remove operations

- Also adds more sections to the haddock API doc to make it more
  friendly.
2017-10-25 08:43:35 +00:00
Aditya Manthramurthy
b7dfd0457d Add documentation for presigned operations (#68)
- 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.
2017-10-16 16:13:18 +00:00
Harshavardhana
c26af265ec Add ListObjectsV1 API support (#66)
This is added for legacy requirements
2017-10-15 22:38:06 -07:00
Harshavardhana
2b816b7092 Remove resuming capabilities of PutObject (#67) 2017-10-16 02:35:37 +05:30
Harshavardhana
df5cf20fce For secure connection do not compute sha256 (#65) 2017-10-13 14:43:26 -07:00
Aditya Manthramurthy
d3353bb35a Add presigned Post Policy API (#58)
- Also force tests to run in serial on travis (otherwise it times out)
2017-09-26 09:02:39 -07:00
Aditya Manthramurthy
02170778da Add presigned operations APIs (#56)
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.
2017-09-08 10:39:07 -05:00
Krishnan Parthasarathi
d7ba361784 Add removeIncompleteupload API (#49) 2017-09-08 12:42:29 +05:30
Aditya Manthramurthy
8456034d9e Fix concurrency bug in limitedMapConcurrently (#53)
Also simplifies implementation using lifted `bracket_` and async
routines, instead of lifted control operations like `liftBaseOp_`

Adds a test.
2017-08-21 11:52:06 -07:00
Krishnan Parthasarathi
dca4462879 Move runResourceT into Minio monad (#50) 2017-07-15 11:07:33 -06:00
Krishnan Parthasarathi
2e7984b71c Export ListUploadsResult and ListObjectsResult (#48)
Also take max-keys as an argument for listObjects' and max-uploads for
listIncompleteUploads'.
2017-06-16 10:23:52 -07:00
Aditya Manthramurthy
e8a75a8fdb Add bucket and object name validation (#45) 2017-03-28 16:27:23 +05:30
Krishnan Parthasarathi
9358d28d3b Fix hlint warnings and suggestions (#44) 2017-03-25 15:56:51 +05:30
Krishnan Parthasarathi
b30beecd52 Add bucketExists and headBucket APIs (#42)
Also fixed examples to work with lts-8.5
2017-03-23 15:57:52 +05:30
Krishnan Parthasarathi
3d6d2d5d61 Make minio-hs build with lts-8.5 (#33) 2017-03-17 14:53:24 +05:30
Krishnan Parthasarathi
a78d2bf39a Fix size calculation of parts in listIncompleteUploads (#31) 2017-03-15 19:17:48 +05:30
Krishnan Parthasarathi
843fd6123b Add copyObject example. (#30) 2017-03-15 15:26:48 +05:30
Krishnan Parthasarathi
84c596f32c Parse S3 service errors and return ServiceErr values (#28) 2017-03-13 19:02:21 +05:30
Krishnan Parthasarathi
b333ed6345 Make MinioErr flatter and make examples work. (#25) 2017-03-09 16:51:56 +05:30
Krishnan Parthasarathi
9001f81813 Add port to host header for signing. (#24)
* Add port to host header for signing.

* Use endpoint corresponding to region for AWS S3
2017-03-03 21:16:47 +05:30
Aditya Manthramurthy
c30d4b2ce5 Use multipart copy in copyObject smaller files: (#23)
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.
2017-03-03 16:50:59 +05:30
Krishnan Parthasarathi
de97837020 Add removeObject function (#22)
* Add an example
 * Fix minor issues in API.md
2017-03-02 16:49:27 +05:30
Krishnan Parthasarathi
7be42dd011 Add copyright header to all source files. (#20) 2017-03-02 16:01:59 +05:30
Aditya Manthramurthy
95815b3edd Clean up ConnectInfo smart constructors + doc sections: (#21)
* Introduce ConnectInfo and its smart constructors

* Introduce the Minio monad and provide a simple example
2017-03-02 15:45:15 +05:30
Krishnan Parthasarathi
8efd9f2329 Export getService S3API as listBuckets (#18)
... for parity with other SDKs.

- Also remove left-over reference of listIncompleteParts.
2017-03-02 12:11:34 +05:30
Krishnan Parthasarathi
4ec362918e listIncompleteUploads returns upload size like other SDKs (#15) 2017-03-01 17:01:52 +05:30
Aditya Manthramurthy
99d9879cb5 Rename types (#12)
* Rename PartInfo -> PartTuple

* Rename ListPartInfo -> ObjectPartInfo
2017-02-28 18:14:16 +05:30
Krishnan Parthasarathi
abdc9fe320 Use bucket region cache to minimize getLocation requests (#3) 2017-02-25 16:42:23 +05:30
Aditya Manthramurthy
e4e2576c74 Add copyObject API: (#5)
* 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.
2017-02-23 14:04:08 +05:30
Harshavardhana
fa527afa96 Rename putObjectFromSource as putObject
Also live server tests now use Minio Play server.
2017-02-18 16:40:30 +05:30
Aditya Manthramurthy
f5bc5a0a45 Fix haddock links (Fixes #6) (#13) 2017-02-13 16:06:01 +05:30
Krishnan Parthasarathi
00176ff976 Add statObject high-level API (#11) 2017-02-13 16:06:01 +05:30
Aditya Manthramurthy
153c5a67cd Add high-level makeBucket API (#2)
* Add high-level makeBucket API

* Add build badge

* Bring back live server tests.
2017-02-13 16:06:01 +05:30
Aditya Manthramurthy
3c92dc92c6 Improve some haddock; improve getObject interface. 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
75743ab946 PutObject fixes - does resource cleanup properly now. 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
fd66d85167 Add getObject and putObject examples
- Use mkRandFile instead of depending on files on disk.
2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
0509d90ef1 Multipart upload bug fixes and test fixes 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
915d099112 Add putObjectFromSource and some minor refactors 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
688f326b6e Make parallel upload also resume an existing upload 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
d17d6f216d Use tlsManagerSettings if connectIsSecure is True
Also provide convenient default instances for ConnectInfo for AWS and
play (minio service).
2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
b36fbb3a2f parseListObjectsResponse should handle empty etags 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
c430e3d747 Makes sequential uploads resumable. 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
43bfabd186 Improve error handling; misc 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
aa66ba291e Add listObjects, listIncompleteUploads and listIncompleteParts
high-level APIs
2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
0f3676b6d7 Minor refactor 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
f26fbc82a7 Refactor error types returned by the library 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
5f1ee7fc67 Implement list object parts of an ongoing multipart upload. 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
74748cfb16 Initial high-level putobject 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
a36b8b036f doc: add missing doc strings 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
41d86e86ff Add listIncompleteUploads s3 api. 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
dafa01d7db Clean up with better combinators 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
a12fa8a077 Align imports 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
2817d4654d Fix warnings 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
72f824dd31 Add listObjects s3api. 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
2070a8e13f PutObjectPart and CompleteMultipartUpload with basic tests
- Functional tests are refactored
2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
e2a99530be use Default instance for ConnectInfo 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
3dcb89d8ba Add abort multipart 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
6268eb29a7 Restructure functional tests and remove executable from .cabal 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
4e0635cab3 Add support for ghc 8 - build with "STACK_YAML=stack-ghc-8.0.1.yaml stack install" 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
82262ee695 Eliminate requestInfo function and use default instances 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
20481ef019 Add some basic documentation 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
6db483c2bc Fix some warnings 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
8be4f0a06f Add MonadBaseControl IO instance and catch HttpException 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
7d7b81cbe3 Catch file opening errors 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
ca3276cd87 Basic putObject is working:
- This is single PUT action - so only files up to 5GB.
- Buffers in memory because chunked singature is not yet implemented.
- fPutObject is simply wired to putObject (so does not yet work for
  multipart uploads
2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
b9c7ceb435 Make internal functions available for testing 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
a7e70b9031 Refactor error handling and fix most warnings 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
c9f6d666db Refactor request builder and Payload type 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
1ad670a328 Fix shadowing warnings 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
0648e4965e Fix getObject to throw error on failure 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
2cda5d2e55 Add deleteBucket and deleteObject api 2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
45d5f9e676 Move region to RequestInfo
Region is a request specific attribute, mostly applies to bucket
operations.
2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
342d0bc8ff Move Xml Generation to a module
- Make putBucket throw exception of failure
2017-02-13 16:03:42 +05:30
Krishnan Parthasarathi
a9b82f9b70 Add putBucket API 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
73a88143d5 GetObject s3api and fGetObject api
- Also updates to lts 6.27 (to be able to use sinkFileCautious)
2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
fe1dfe24d6 Reorganize api 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
00e9198e60 Implement getService and getLocation 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
9d6ec0f6e5 more progress 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
fb6bf1a9cb working program - with minio monad 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
07eb59fda5 Add Minio monad and start getService 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
4569348dc2 Signing works! But includes lots of debug stmts. 2017-02-13 16:03:42 +05:30
Aditya Manthramurthy
5ce595bc6f Compiling but without signing working properly yet 2017-02-13 16:03:42 +05:30