aboutsummaryrefslogtreecommitdiff
path: root/src/api/s3_get.rs
Commit message (Collapse)AuthorAgeFilesLines
* First implementation of K2V (#293)Alex2022-05-101-461/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Specification:** View spec at [this URL](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/k2v/doc/drafts/k2v-spec.md) - [x] Specify the structure of K2V triples - [x] Specify the DVVS format used for causality detection - [x] Specify the K2V index (just a counter of number of values per partition key) - [x] Specify single-item endpoints: ReadItem, InsertItem, DeleteItem - [x] Specify index endpoint: ReadIndex - [x] Specify multi-item endpoints: InsertBatch, ReadBatch, DeleteBatch - [x] Move to JSON objects instead of tuples - [x] Specify endpoints for polling for updates on single values (PollItem) **Implementation:** - [x] Table for K2V items, causal contexts - [x] Indexing mechanism and table for K2V index - [x] Make API handlers a bit more generic - [x] K2V API endpoint - [x] K2V API router - [x] ReadItem - [x] InsertItem - [x] DeleteItem - [x] PollItem - [x] ReadIndex - [x] InsertBatch - [x] ReadBatch - [x] DeleteBatch **Testing:** - [x] Just a simple Python script that does some requests to check visually that things are going right (does not contain parsing of results or assertions on returned values) - [x] Actual tests: - [x] Adapt testing framework - [x] Simple test with InsertItem + ReadItem - [x] Test with several Insert/Read/DeleteItem + ReadIndex - [x] Test all combinations of return formats for ReadItem - [x] Test with ReadBatch, InsertBatch, DeleteBatch - [x] Test with PollItem - [x] Test error codes - [ ] Fix most broken stuff - [x] test PollItem broken randomly - [x] when invalid causality tokens are given, errors should be 4xx not 5xx **Improvements:** - [x] Descending range queries - [x] Specify - [x] Implement - [x] Add test - [x] Batch updates to index counter - [x] Put K2V behind `k2v` feature flag Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/293 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me>
* Fix partnumberAlex Auvolat2022-01-251-91/+117
|
* Implement part_number for GetObjectAlex Auvolat2022-01-241-73/+146
|
* Multipart improvementsAlex Auvolat2022-01-241-24/+71
| | | | | - support part_number for HeadObject - add checks in complete_multipart_upload
* Fix some error codesAlex Auvolat2022-01-051-7/+7
|
* New model for bucketsAlex Auvolat2022-01-041-4/+5
|
* Improved handling of HTTP rangestrinity-1686a2021-11-291-8/+5
| | | | | | | | | | | - 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: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/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>
* Fix clippy lints (fix #121)Alex Auvolat2021-10-261-5/+5
|
* fix clippy warnings on apiTrinity Pointard2021-05-031-10/+10
|
* document api crateTrinity Pointard2021-04-271-1/+4
|
* Add trinity's comment in the codeAlex Auvolat2021-03-181-0/+5
|
* add support for caching headersTrinity Pointard2021-03-181-1/+44
|
* Refactor model stuff, including cleaner CRDTsAlex Auvolat2021-03-101-5/+7
|
* Fix #28, extra headers being ignored (because of profound stupidity)Alex Auvolat2021-02-191-0/+2
|
* Propose ETag fixbug/etagAlex Auvolat2020-12-051-1/+4
|
* Reformulate patchAlex Auvolat2020-12-051-5/+7
|
* Fix Content-Lengthbug/content-rangeQuentin2020-12-051-4/+5
|
* Content-range fixAlex Auvolat2020-12-051-15/+29
|
* Replace with option syntaxic sugarQuentin2020-11-111-24/+11
|
* Refactor error management in API parterror-refactoringAlex Auvolat2020-11-081-8/+7
|
* Validate content MD5 and SHA256 sums for PutObject and UploadPartAlex Auvolat2020-07-151-4/+4
|
* More headers taken into accountAlex Auvolat2020-07-091-3/+8
|
* cargo fmtAlex Auvolat2020-07-081-19/+34
|
* Migrate S3 api to use new modelAlex Auvolat2020-07-081-24/+35
|
* Apply cargo fmt; add trace output when request signature is badAlex Auvolat2020-07-081-6/+4
|
* Update to Hyper 0.13.6 that accepts non-Sync streams in wrap_stream.Alex Auvolat2020-07-071-12/+12
| | | | Simplifies code and makes it possible to publish on crates.io
* Rename garage_core to garage_modelAlex Auvolat2020-07-071-2/+2
|
* Implement HTTP ranges in getAlex Auvolat2020-05-041-1/+95
|
* Implement multipart uploadsAlex Auvolat2020-04-261-1/+3
|
* Prepare for multipart uploadsAlex Auvolat2020-04-261-2/+2
|
* Some basic S3 functionnalityAlex Auvolat2020-04-241-0/+131