Commit graph

48 commits

Author SHA1 Message Date
b1cfd16913
New buckets for 0.6.0: small fixes, including:
- ensure bucket names are correct aws s3 names
- when making aliases, ensure timestamps of links in both ways are the
  same
- fix small remarks by trinity
- don't have a separate website_access field
2022-01-04 12:46:41 +01:00
0bbb6673e7
Model changes 2022-01-04 12:45:52 +01:00
5b1117e582
New model for buckets 2022-01-04 12:45:46 +01:00
60d4459926 BucketWebsite (#174)
fix #77

this does not store anything but a on/off switch for website, and does not implement GetBucketWebsite as it would require storing more. GetBucketWebsite should be pretty easy to implement once data is stored though.

Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com>
Reviewed-on: Deuxfleurs/garage#174
Co-authored-by: trinity-1686a <trinity.pointard@gmail.com>
Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
2021-12-15 10:41:39 +01:00
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
Renamed from src/api_server.rs (Browse further)