c4ac8835d3
add proper request router for s3 api ( #163 )
...
fix #161
Current request router was organically grown, and is getting messier and messier with each addition.
This router cover exaustively existing API endpoints (with exceptions listed in [#161(comment)](Deuxfleurs/garage#161 (comment) ) either because new and old api endpoint can't feasabily be differentied, or it's more lambda than s3).
Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com>
Reviewed-on: Deuxfleurs/garage#163
Reviewed-by: Alex <alex@adnab.me>
Co-authored-by: trinity-1686a <trinity.pointard@gmail.com>
Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
2021-12-06 15:17:47 +01:00
7f26ed55cd
Improved handling of HTTP ranges
...
- correct HTTP code when range syntax is invalid (fix #140 )
- when multiple ranges are given, simply ignore and send whole file
Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com>
Reviewed-on: Deuxfleurs/garage#157
Reviewed-by: Alex <alex@adnab.me>
Co-authored-by: trinity-1686a <trinity.pointard@gmail.com>
Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
2021-11-29 11:52:42 +01:00
53888995bd
update doc and comments
2021-11-16 15:41:41 +01:00
396fe4c702
clippy
2021-11-16 15:41:41 +01:00
02158ee666
fix issue where list on vhost-bucket would list bucket instead of bucket content
2021-11-16 15:41:41 +01:00
9c58ec28d3
add support for vhost-style s3 bucket
2021-11-16 15:41:41 +01:00
ada7899b24
Fix clippy lints ( fix #121 )
2021-10-26 10:20:05 +02:00
5fdabf3e75
Add basic support for the "Versioning" command
2021-05-14 22:33:26 +02:00
84856e84e5
fix clippy warnings on api
2021-05-03 22:11:41 +02:00
631c36b3ff
S3 API: support ListBuckets
2021-05-03 21:55:30 +02:00
dcfc32cf85
Many S3 compatibility improvements:
...
- return XML errors
- implement AuthorizationHeaderMalformed error to redirect clients to
correct location (used by minio client)
- implement GetBucketLocation
- fix DeleteObjects XML parsing and response
2021-04-28 01:05:40 +02:00
1e3df189d0
document api crate
2021-04-27 16:37:10 +02:00
b4c903371c
add support for caching headers
2021-03-18 15:46:33 +01:00
3bf2df622a
Time and metadata improvements
2021-03-15 16:21:41 +01:00
40763fd749
Cargo fmt
2021-02-23 18:46:25 +01:00
3bcbbe1e31
More precise logging (warn only when returning a 500)
2021-02-20 00:30:39 +01:00
10b983b8e7
Add verification of part numbers in CompleteMultipartUpload (WIP #30 )
2021-02-20 00:13:07 +01:00
5d1fa591d9
Add compatibility list
2021-02-19 19:10:23 +01:00
55a2a636ca
Implement ListObjectsV2
2021-02-19 16:44:06 +01:00
36814be447
Fix S3 ListObjects result and replace println!s by debug!s
2021-01-16 16:05:54 +01:00
a50fa70d45
Refactor error management in API part
2020-11-08 15:05:28 +01:00
6a8b972f3a
Modif parse_bucket_key to fail when bucket is ""
2020-11-08 13:39:44 +01:00
e1415f5976
Add a second test
2020-11-07 15:34:53 +01:00
9a50ce12a8
Fix formatting
2020-11-07 13:59:30 +01:00
8f4ada1965
Add a test for parse_bucket_key
2020-11-07 13:53:32 +01:00
1c70552f95
Validate content MD5 and SHA256 sums for PutObject and UploadPart
2020-07-15 15:31:13 +02:00
86fb7bbba5
Apply cargo fmt; add trace output when request signature is bad
2020-07-08 13:33:02 +02:00
f22ecb60a8
Update to Hyper 0.13.6 that accepts non-Sync streams in wrap_stream.
...
Simplifies code and makes it possible to publish on crates.io
2020-07-07 17:15:53 +02:00
bec26a1312
Rename garage_core to garage_model
2020-07-07 13:59:22 +02:00
b46a7788d1
Implement HTTP ranges in get
2020-05-04 13:09:23 +00:00
d867bbcfb5
Implement DeleteObjects
2020-05-01 15:52:35 +00:00
3324971701
Slightly improved S3 compatibility
...
- ListBucket does not require any of the parameters (delimiter,
prefix, max-keys, etc)
- URLs are properly percent_decoded
- PutObject and DeleteObject calls now answer correctly
(empty body, version id in the x-amz-version-id: header)
2020-05-01 14:30:50 +00:00
3686f100b7
Compatibility fixes
2020-04-28 10:35:04 +00:00
0957d0fdfa
Work on API
2020-04-28 10:18:14 +00:00
0877a5500c
Abort multipart upload
2020-04-26 20:46:33 +00:00
81ecc4999e
Implement multipart uploads
2020-04-26 20:39:32 +00:00
9cb870f950
Prepare for multipart uploads
2020-04-26 18:55:13 +00:00
ea7e4748ed
S3 compatibility: fix bucket listing and HEAD and PUT on bucket
2020-04-26 16:22:33 +00:00
e3203f998b
Remove leading / in keys; better delimiter handling
2020-04-24 22:28:15 +02:00
91b2d1fcc1
Some basic S3 functionnality
2020-04-24 18:47:11 +00:00
f2e05986c4
Starting to be S3 compatible
2020-04-24 17:46:52 +00:00
d8f5e643bc
Split code for modular compilation
2020-04-24 10:10:01 +00:00
44a1089d95
Make table objects slightly more fool-proof; add key table
2020-04-23 18:16:52 +00:00
c9c6b0dbd4
Reorganize code
2020-04-23 17:05:46 +00:00