Commit Graph

178 Commits

Author SHA1 Message Date
Alex Auvolat
dead945c8f Prepare for release 0.2 2021-03-18 19:33:15 +01:00
Trinity Pointard
b4c903371c add support for caching headers 2021-03-18 15:46:33 +01:00
Alex Auvolat
f4346cc5f4 Update dependencies 2021-03-16 15:58:40 +01:00
Alex Auvolat
0cd5b2ae19 WIP migrate to tokio 1 2021-03-15 22:36:41 +01:00
Alex Auvolat
667e4e72a8 Small fixes 2021-03-15 19:51:16 +01:00
Alex Auvolat
3bf2df622a Time and metadata improvements 2021-03-15 16:21:41 +01:00
Alex Auvolat
097c339d98 Fix race condition 2021-03-15 15:26:29 +01:00
Alex Auvolat
bdcbdd1cd8 Fix list API bug 2021-03-15 14:46:37 +01:00
Alex Auvolat
831eb35763 cargo fmt 2021-03-12 21:52:19 +01:00
Alex Auvolat
c475471e7a Implement table gc, currently for block_ref and version only 2021-03-12 19:57:37 +01:00
Alex Auvolat
7fdaf7aef0 Fix merkle updater not being notified; improved logging 2021-03-12 14:37:46 +01:00
Alex Auvolat
3214dd52dd Very minor changes 2021-03-10 21:50:09 +01:00
Alex Auvolat
af7600f989 Correctly implement CompleteMultipartUpload with etag check of parts 2021-03-10 17:01:05 +01:00
Alex Auvolat
0fd7df8fa0 Switch to blake2 sum for identifying blocks by their data 2021-03-10 16:33:31 +01:00
Alex Auvolat
f319a7d374 Refactor model stuff, including cleaner CRDTs 2021-03-10 16:21:56 +01:00
Alex Auvolat
40763fd749 Cargo fmt 2021-02-23 18:46:25 +01:00
Alex Auvolat
b1b640ae8b rename hash() to sha256sum(), we might want to change it at some places 2021-02-21 15:24:30 +01:00
Alex Auvolat
3bcbbe1e31 More precise logging (warn only when returning a 500) 2021-02-20 00:30:39 +01:00
Alex Auvolat
10b983b8e7 Add verification of part numbers in CompleteMultipartUpload (WIP #30) 2021-02-20 00:13:07 +01:00
Alex Auvolat
1de96248e0 add application/xml header and missing xml escapes 2021-02-19 23:40:18 +01:00
Alex Auvolat
5d1fa591d9 Add compatibility list 2021-02-19 19:10:23 +01:00
Alex Auvolat
e64ecbdccd S3 compatibility: return 404 instead of 400 on some multipart commands 2021-02-19 18:51:05 +01:00
Alex Auvolat
55a2a636ca Implement ListObjectsV2 2021-02-19 16:44:06 +01:00
Alex Auvolat
02d512f3fd Fix #28, extra headers being ignored (because of profound stupidity) 2021-02-19 12:38:22 +01:00
Alex Auvolat
76390085ef Small improvements in the S3 put workflow 2021-02-19 12:11:02 +01:00
Alex Auvolat
36814be447 Fix S3 ListObjects result and replace println!s by debug!s 2021-01-16 16:05:54 +01:00
Alex Auvolat
e818f51073 Forgot a bump 2021-01-15 18:36:51 +01:00
Alex Auvolat
022b386a50 Improved compatibility on list API call 2020-12-06 15:39:03 +01:00
Alex Auvolat
4a5bbbb810 Propose ETag fix 2020-12-05 19:23:46 +01:00
Alex Auvolat
76b489f3d3 Reformulate patch 2020-12-05 19:20:07 +01:00
Quentin
bd7e3d1bd1 Fix Content-Length 2020-12-05 18:57:22 +01:00
Alex Auvolat
9f46fb699a Content-range fix 2020-12-05 16:37:59 +01:00
Alex Auvolat
d54f15b2c6 Small optimisation 2020-11-29 17:07:14 +01:00
Alex Auvolat
fed97f37e1 ETag patch 2020-11-29 16:38:01 +01:00
Alex Auvolat
601ae25ad2 Small refactorings 2020-11-29 16:21:28 +01:00
Quentin
17dc610f8a Also check hash for < 3KB files 2020-11-22 11:14:46 +01:00
Quentin
435d5f9205 Fix base64/hex checksum comparison 2020-11-22 11:04:33 +01:00
Alex Auvolat
f8a04852a2 Convert bucket table to better CRDT representation 2020-11-20 23:53:54 +01:00
Alex Auvolat
e02e9e035e Begin improve model to use better CRDTs 2020-11-20 23:53:54 +01:00
Alex Auvolat
e9fd265ce6 Slight refactoring to make things clearer with DeletedFilter 2020-11-20 20:11:04 +01:00
Alex Auvolat
7d7b9e95a9 Simplify and_then(Some) as map() and remove move 2020-11-11 16:36:48 +01:00
Quentin
5a5592c176 Replace with option syntaxic sugar 2020-11-11 16:12:42 +01:00
Alex Auvolat
a50fa70d45 Refactor error management in API part 2020-11-08 15:05:28 +01:00
Alex Auvolat
6a8b972f3a Modif parse_bucket_key to fail when bucket is "" 2020-11-08 13:39:44 +01:00
Quentin
e1415f5976 Add a second test 2020-11-07 15:34:53 +01:00
Quentin
9a50ce12a8 Fix formatting 2020-11-07 13:59:30 +01:00
Quentin
8f4ada1965 Add a test for parse_bucket_key 2020-11-07 13:53:32 +01:00
Alex Auvolat
5faf069e33 trace test 2020-07-15 15:41:49 +02:00
Alex Auvolat
27a0d0d859 pretty 2020-07-15 15:37:35 +02:00
Alex Auvolat
1c70552f95 Validate content MD5 and SHA256 sums for PutObject and UploadPart 2020-07-15 15:31:13 +02:00
Alex Auvolat
6c7f9704ea Implement correct ETag for objects created with PutObject 2020-07-13 16:51:30 +02:00
Alex Auvolat
9305e5e87f More headers taken into account 2020-07-09 17:04:43 +02:00
Alex Auvolat
44dba0e53c cargo fmt 2020-07-08 17:34:37 +02:00
Alex Auvolat
64a6eda0d2 Migrate S3 api to use new model 2020-07-08 17:33:24 +02:00
Alex Auvolat
86bf4dedac Add support for model migrations 2020-07-08 16:10:53 +02:00
Alex Auvolat
86fb7bbba5 Apply cargo fmt; add trace output when request signature is bad 2020-07-08 13:33:02 +02:00
Alex Auvolat
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
Alex Auvolat
3b0b11085e Add versions to dependencies 2020-07-07 14:18:47 +02:00
Alex Auvolat
cc65cdc0fe Add license, description and repository to .toml files 2020-07-07 14:14:58 +02:00
Alex Auvolat
bec26a1312 Rename garage_core to garage_model 2020-07-07 13:59:22 +02:00
Alex Auvolat
b46a7788d1 Implement HTTP ranges in get 2020-05-04 13:09:23 +00:00
Alex Auvolat
d867bbcfb5 Implement DeleteObjects 2020-05-01 15:52:35 +00:00
Alex Auvolat
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
Alex Auvolat
3686f100b7 Compatibility fixes 2020-04-28 10:35:04 +00:00
Alex Auvolat
0957d0fdfa Work on API 2020-04-28 10:18:14 +00:00
Alex Auvolat
0877a5500c Abort multipart upload 2020-04-26 20:46:33 +00:00
Alex Auvolat
81ecc4999e Implement multipart uploads 2020-04-26 20:39:32 +00:00
Alex Auvolat
1999c0ae51 Update delete code 2020-04-26 19:11:19 +00:00
Alex Auvolat
9cb870f950 Prepare for multipart uploads 2020-04-26 18:55:13 +00:00
Alex Auvolat
ea7e4748ed S3 compatibility: fix bucket listing and HEAD and PUT on bucket 2020-04-26 16:22:33 +00:00
Alex Auvolat
e3203f998b Remove leading / in keys; better delimiter handling 2020-04-24 22:28:15 +02:00
Alex Auvolat
be4831d768 Less verbosity 2020-04-24 19:27:27 +00:00
Alex Auvolat
a52db67954 xml escape 2020-04-24 18:56:00 +00:00
Alex Auvolat
91b2d1fcc1 Some basic S3 functionnality 2020-04-24 18:47:11 +00:00
Alex Auvolat
f2e05986c4 Starting to be S3 compatible 2020-04-24 17:46:52 +00:00
Alex Auvolat
d8f5e643bc Split code for modular compilation 2020-04-24 10:10:01 +00:00
Alex Auvolat
44a1089d95 Make table objects slightly more fool-proof; add key table 2020-04-23 18:16:52 +00:00
Alex Auvolat
c9c6b0dbd4 Reorganize code 2020-04-23 17:05:46 +00:00