107 Commits

Author SHA1 Message Date
Aditya Manthramurthy
54b671ef4c
Add new put and get APIs for objects (#78)
- put_object_content -> streaming object uploads

- put_object_from_file -> upload file

- put_object, create_multipart_uload, abort_multipart_upload,
upload_part, complete_multipart_upload -> S3 APIs for single and
multipart uploads

- get_object -> streaming object downloads
2024-04-03 06:39:54 +05:30
Aditya Manthramurthy
3f160cb6c0
Parse and add tags to list objects output type (#77) 2024-04-03 06:36:53 +05:30
Aditya Manthramurthy
c672e7528b
Fix list objects xml parsing bug and improve perf. (#59)
For list-object-versions there was a bug that would return delete
markers after all versions of an object. The server response contains
the order of versions and delete markers according to recency and the
list objects client call should preserve this. This is fixed in this
change.

XML parsing was using the `take_child` call, that mutates a vector
removing an element in it. For a response containing N items, using
take_child on item, causes the XML parsing cost to be O(N^2) (so 1
million operations for a 1000 item list) - this change makes the parsing
cost linear.
2024-04-03 06:33:37 +05:30
Aditya Manthramurthy
35954da61d
Add builders for bucket methods: (#76)
- list buckets
- get bucket versioning
2024-04-03 06:29:40 +05:30
Aditya Manthramurthy
6a34d4c677
Add builder for ListenBucketNotification (#75)
- Also update the types used in NotificationRecords
2024-04-03 06:25:38 +05:30
Aditya Manthramurthy
fc20535f1d
Add builder style for list_objects (#74)
- Also add `include_user_metadata` option for list object versions
2024-04-03 06:09:40 +05:30
Henk-Jan Lebbink
75ea23aaf1
fix deprecated lifetime; update example file-uploader (#71)
* fix: deprecated elided_lifetimes_in_associated_constant

* fix warnings

* update: example file-file-uploader
2024-03-15 09:24:44 -07:00
Aditya Manthramurthy
8fb211ae0e
Add streaming APIs for list objects (#54) 2023-10-05 09:46:44 +05:30
Aditya Manthramurthy
17a6dead9c
Add streaming support to listen_bucket_notification() API (#55) 2023-10-03 22:37:52 +05:30
Aditya Manthramurthy
c63d3f9350
Add doc for list_objects API (#53) 2023-09-29 21:52:38 +05:30
Aditya Manthramurthy
8ecabea0d2
fix: Set user agent always (#52) v0.1.0 2023-09-27 21:34:06 +05:30
Aditya Manthramurthy
e9aea2ada6
Add builder style constructor for Client (#50) 2023-09-27 06:52:37 +05:30
Aditya Manthramurthy
4958c01f4c
Add FromStr instance to BaseURL (#51) 2023-09-27 06:48:07 +05:30
Aditya Manthramurthy
e5f6b16051
Add file-uploader example (#49)
Also add some basic fields to Cargo.toml to prepare for initial release.
2023-09-26 10:43:05 -07:00
Aditya Manthramurthy
4676ae8a57
Remove lifetime parameter from client (#48)
This change lets the Client struct take ownership of the Provider trait
object so that we are remove the lifetime parameter from the Client.

This change simplifies usage of the Client object. Without this it is
difficult to pass the Client object to a thread.
2023-09-26 06:41:48 +05:30
Bala FA
526b2a81ab
Add generic AWS S3 domain support (#39)
Signed-off-by: Bala.FA <bala@minio.io>
2023-09-26 05:58:32 +05:30
Bala FA
1f5ccb3113
fix get_presigned_object_url() API to use host header value (#47)
Fixes #46

Signed-off-by: Bala.FA <bala@minio.io>
2023-09-26 05:27:36 +05:30
Bala FA
28e7fee8fa
Add documentation and few enhancements (#45)
Signed-off-by: Bala.FA <bala@minio.io>
2023-09-26 05:16:11 +05:30
Bala FA
aee702f337
Reuse reqwest::Client connection pool (#44)
Signed-off-by: Bala.FA <bala@minio.io>
2023-09-07 06:21:01 +05:30
Bala FA
bbc7945eb8
Simplify code using clippy (#38)
Signed-off-by: Bala.FA <bala@minio.io>
2023-09-06 07:52:31 +05:30
Bala FA
f4cadad6ef
list_objects(): fix user metadata as per MinIO server (#30)
Signed-off-by: Bala.FA <bala@minio.io>
2023-06-04 14:22:11 -07:00
Bala FA
67d92a3427
Add more APIs (#25)
* {set,get,delete}_bucket_notification
* {set,get,delete}_bucket_policy
* {set,get,delete}_bucket_replication
* {set,get,delete}_bucket_tags
* {set,get,delete}_object_lock_config
* {set,get,delete}_object_tags
* {set,get}_bucket_versioning
* {set,get}_object_retention
* get_presigned_object_url
* get_presigned_post_form_data
* {upload,download}_object

Signed-off-by: Bala.FA <bala@minio.io>
2022-11-30 12:25:36 -08:00
Bala FA
5fea81d68d
Add bucket encryption/lifecycle and object legal-hold APIs. (#24)
Below APIs are added
* DeleteBucketEncryption()
* GetBucketEncryption()
* SetBucketEncryption()
* DisableObjectLegalHold()
* EnableObjectLegalHold()
* IsObjectLegalHoldEnabled()
* DeleteBucketLifecycle()
* GetBucketLifecycle()
* SetBucketLifecycle()

Signed-off-by: Bala.FA <bala@minio.io>
2022-09-28 06:12:09 +05:30
Bala FA
49452a0b73
list_objects(): fix parsing user metadata as per MinIO server (#23)
Signed-off-by: Bala.FA <bala@minio.io>
2022-09-23 21:38:06 -07:00
Harshavardhana
4da529a13f
add docs build 'deploy-docs.sh' (#22) 2022-09-04 23:53:54 -07:00
Bala FA
c5f8f61bdf
Add compose_object() API (#20)
Signed-off-by: Bala.FA <bala@minio.io>
2022-09-04 20:11:02 -07:00
Bala FA
c21dda1492
Add listen_bucket_notification() API (#15)
Signed-off-by: Bala.FA <bala@minio.io>
2022-08-31 08:20:33 -07:00
Harshavardhana
f88c9dd919
add SSL_CERT_FILE support, add into tests (#18) 2022-08-24 20:02:23 -07:00
Bala FA
b62b39e7c9
Accept list of items in list_objects() callback. (#16)
Signed-off-by: Bala.FA <bala@minio.io>
2022-08-24 11:49:28 -07:00
Harshavardhana
1888666d4f
address build issues and also use builder class for Client (#17) 2022-08-22 22:30:06 -07:00
Harshavardhana
20c0150d3d rename ci->rust.yml 2022-08-22 19:04:36 -07:00
Bala FA
0fb80e1456
Refactor S3 client implementation (#13)
Added below S3 APIs

* abort_multipart_upload()
* bucket_exists()
* complete_multipart_upload()
* create_multipart_upload()
* get_object()
* list_buckets()
* list_objects_v1()
* list_objects_v2()
* list_object_versions()
* list_objects()
* make_bucket()
* put_object()
* put_object_api()
* remove_bucket()
* remove_object()
* remove_objects_api()
* remove_objects()
* select_object_content()
* stat_object()
* upload_part()

Signed-off-by: Bala.FA <bala@minio.io>
2022-08-20 15:10:11 -07:00
Daniel Valdivia
91ad6401c3
Parse XML Errors. (#11) 2021-03-25 13:31:38 -07:00
Daniel Valdivia
db45f6865f
Pass ownership of header map to get_headers_to_sign (#10) 2021-02-08 10:48:59 -08:00
Daniel Valdivia
8aa4d412ff
Merge pull request #9 from grumbach/master
Add put_object_req method
2021-02-05 11:19:15 -08:00
grumbach
5d0bf5a496 [CLEAN] remove main, replace println with debug 2020-10-13 11:31:04 +02:00
grumbach
93e5cb1108 [CLEAN] tests back to original 2020-09-24 13:35:55 +02:00
grumbach
b9b939e8e8 [ADD] working test 2020-09-24 13:32:25 +02:00
Daniel Valdivia
1127594f83 Refactor Notification API. Move code to it's own file. (#6)
* Refactor Notification API. Move code to it's own file.

* Fix missing import

* Remove empty line

* Fix Typo
2019-07-12 16:23:01 -07:00
Daniel Valdivia
891d050e35 Move to debug! instead of println! (#7) 2019-07-10 09:56:11 -07:00
Daniel Valdivia
128ecb871f Add listen bucket notification (#3) 2019-06-24 17:04:27 -07:00
Krishnan Parthasarathi
89d0c3accf Add validation for possibly empty tags in ListObjects response (#5) 2019-06-24 16:17:33 -07:00
Krishnan Parthasarathi
124b254009 Add list_objects API (#2) 2019-06-24 11:59:37 -07:00
Krishnan Parthasarathi
36a3b3c155 Add list_buckets api (#1) 2019-06-18 16:33:06 -07:00
Harshavardhana
a7c29a57c3 Add travis build 2019-06-18 12:23:56 -07:00
Krishnan Parthasarathi
fe8d248fed Add make_bucket api 2019-06-04 17:05:52 -07:00
Aditya Manthramurthy
8647dccfde Get object request 2019-05-31 14:54:16 -07:00
Aditya Manthramurthy
a40a6e15ed Add bucket exists API 2019-05-30 17:27:35 -07:00
Aditya Manthramurthy
b63c820c66 Refactor request creation bits 2019-05-30 17:09:14 -07:00
Aditya Manthramurthy
334533cff1 Add delete_bucket API 2019-05-30 16:52:02 -07:00