51 Commits

Author SHA1 Message Date
Henk-Jan Lebbink
5080bf9b85 Refactor/cleanup errors (#179)
Some checks failed
Rust Linters / rustfmt (push) Successful in 3m20s
rust-clippy analyze / Run rust-clippy analyzing (push) Failing after 1m5s
* error refactored: moved to thiserror
* Result type alias for better ergonomics:
* removed field from MinioErrorCode::BucketNotEmpty enum
* made field private of MinioErrorResponse
* updated XmlError
* simplified calling errors
* bumped toolchain channel form 1.86.0 to 1.87.0
* bumped toolchain channel form 1.87.0 to 1.88.0 due to clippy fixes that are not compatible with 1.87.0
2025-08-14 21:31:45 -07:00
Henk-Jan Lebbink
34b3e17c57 bugfix: proper handing of whitespace char in url with Form-decoding instead of Percent-decoding (#178) 2025-08-11 09:32:28 -07:00
Henk-Jan Lebbink
e244229490 tests cleanup; cargo clippy fixes, minor doc updates (#177)
* Tests cleanup; cargo clippy fixes, minor doc updates
* updated label checker workflow
2025-07-11 11:08:22 +02:00
Tobias Pütz
8497fdb4ba feat: add a test macro (#170) 2025-06-23 13:38:40 +02:00
Henk-Jan Lebbink
720943b4bb Duplicated code removed, and lazy response evaluation (#162)
* Duplicated code removed, and lazy response evaluation

* moved Tokio runtime from general dependency to dev dependency
2025-06-18 09:55:53 -07:00
Henk-Jan Lebbink
6f904b452a moved Tokio runtime from general dependency to dev dependency (#167)
* moved Tokio runtime from general dependency to dev dependency
* reduced number of worker threads in tests
2025-06-18 11:26:29 +02:00
Henk-Jan Lebbink
9cbb95747f Fixed doc warnings; fixed minor issue with trait separation in append_object (#160)
* minor issues fixed: bucket and object impl trait separated

* fixed doc warnings

* added CI, docs build and docs site to the initial icons

* inline doc updated

* more doc update

* bumped versions
2025-05-28 11:43:08 -07:00
Henk-Jan Lebbink
75602b2673 Added several tests to test_append_object (#158)
* Added several tests to test_append_object
* moved file creation to create_object_helper
2025-05-26 11:31:21 +02:00
Henk-Jan Lebbink
f6ca7dba03 Fixed xml parsing of bucket_lifecycle, added support for with_updated_at (#153) 2025-05-15 10:14:40 -07:00
Henk-Jan Lebbink
9495c5dcce fixed incorrect renaming of listen_bucket_notification (#152) 2025-05-11 11:21:49 -07:00
Henk-Jan Lebbink
20d8654e34 Function names updated to reflect AWS names. Updated docs (#150)
* updated inline doc

* updated inline doc

* API naming conform AWS

* fixed clippy issues

* fixed minor API naming issues
2025-05-09 15:53:44 -07:00
Henk-Jan Lebbink
1869cfeba7 minor issues (#149) 2025-04-26 11:55:48 -07:00
Henk-Jan Lebbink
58d9203153 refactored all functions (#145)
* refactored stat_object

refactored select_object_content

refactor get_presigned_object_url

refactor get_presigned_policy_form_data

refactored upload-part-copy

* fixed object.unwrap

* update region

* made client Arc

* made client Arc

* update client

* update tests

* update segmented_bytes

* bench updated

* cleanup version handling

* cleanup of headers: multimap

* added inner in Client

* updated clients: added Into<String>in API

* Separated http_client and shared client items in Client
2025-04-23 10:18:18 -07:00
Henk-Jan Lebbink
f23572dce8 added benchmarks (#142) 2025-03-29 15:26:11 -07:00
Alfred Mathew
b26ed09e42 optimize: use ring hash and hmac implementations as an opt-in feature (#141)
Defaults to sha2 and hmac.
2025-03-22 11:30:37 +01:00
Henk-Jan Lebbink
ddec540b22 Refactor object lock config, retention, tags (#140)
* refactor make-bucket, bucket_exists, remove_bucket

* refactor disable-object-legal-hold, enable-object-legal-hold, is-object-legal-hold-enabled
2025-03-21 09:25:06 -07:00
Aditya Manthramurthy
c9172cf189 Remove deprecated downloads, uploads, and multipart API (#137)
Add From<&'static str> for ObjectContent and remove deprecated API
2025-03-14 21:39:24 +01:00
Henk-Jan Lebbink
8ea83b45ae Refactor bucket tags, bucket notification, and bucket replication (#132)
* refactor get-set-delete bucket notification

* refactor get-set-delete bucket notification

* refactor get-set-delete bucket notification
2025-03-12 12:44:45 -07:00
Henk-Jan Lebbink
8134acdd09 Bumped rust edition from 2021 to 2024. Only change is some include sorting (#128) 2025-03-11 12:09:43 -07:00
Henk-Jan Lebbink
48da7630a9 refactor: split tests into separate files (#127) 2025-03-10 10:46:12 -07:00
Henk-Jan Lebbink
112c0aed1a Refactor bucket-lifecycle, bucket-policy, bucket-encryption (#124)
* refactored from_s3response trait, and refactored get/set/delete policy

* * refactor set/get/delete bucket lifecycle

* refactored from_s3response trait,
* refactored get/set/delete bucket policy
* delete-bucket-encryption
2025-03-07 16:33:41 -08:00
Henk-Jan Lebbink
c4e302dda7 refactored tests into 24 separate tests (#118)
* cleanup remove_bucket_helper

* update TextContext creation

* update tests
2025-02-28 12:42:14 -08:00
Henk-Jan Lebbink
cba673a379 Refactor set_bucket_versioning (#114) 2025-02-20 17:52:07 -08:00
Henk-Jan Lebbink
1a77ca826d refactored set_bucket_encrypion (#116) 2025-02-04 11:59:49 -08:00
Henk-Jan Lebbink
e98264fa3d Refactor get bucket encryption (#110) 2025-01-31 16:38:50 -08:00
Henk-Jan Lebbink
8facff7bad fixed clippy issues (#106) 2024-12-14 19:31:51 -08:00
vajexal
2ce4fefbc3 Respect content_type prop (#100) 2024-10-25 11:59:47 -07:00
Aditya Manthramurthy
b0d31e1126 Apply many clippy fixes (#95) 2024-06-18 12:25:26 -07:00
Aditya Manthramurthy
d5a648f03c Add builder style remove_object(s) APIs (#85)
- remove older APIs
2024-04-12 18:21:32 -07:00
Aditya Manthramurthy
773ad9133f Return size info in put/get APIs (#82)
Also:

- fix some constraints to allow ObjectContent to be sent across async
tasks.

- use new Size enum instead of Option for specifying object content
sizes

- add tests for part size calculation and validations
2024-04-10 07:51:42 -07:00
Aditya Manthramurthy
6d8031306e Add file read/write ability to ObjectContent (#81) 2024-04-05 19:39:45 -07:00
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
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
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
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
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
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
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