aboutsummaryrefslogtreecommitdiff
path: root/src/api/s3_copy.rs
Commit message (Collapse)AuthorAgeFilesLines
* First implementation of K2V (#293)Alex2022-05-101-660/+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 clippyfix-multipart-fragmentationAlex Auvolat2022-04-191-1/+1
|
* Prettier code for defragmentationAlex Auvolat2022-04-191-104/+102
|
* Defragmentation in UploadPartCopy: first pass (not pretty but it compiles)Alex Auvolat2022-04-191-63/+122
|
* remove size limitation in UploadPartCopy (#280)withinboredom2022-04-191-12/+0
| | | | | | | | | | | This removes the >1mb s3_copy restriction. This restriction doesn't seem to be documented anywhere (I could be wrong). It also causes some software to fail (such as #248). Co-authored-by: Rob Landers <landers.robert@gmail.com> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/280 Co-authored-by: withinboredom <landers.robert@gmail.com> Co-committed-by: withinboredom <landers.robert@gmail.com>
* Support for PostObject (#222)trinity-1686a2022-02-211-1/+1
| | | | | | | | | | | | | | | | | | Add support for [PostObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) - [x] routing PostObject properly - [x] parsing multipart body - [x] validating signature - [x] validating policy - [x] validating content length - [x] actually saving data Co-authored-by: trinity-1686a <trinity@deuxfleurs.fr> Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/222 Reviewed-by: Alex <alex@adnab.me> Co-authored-by: trinity-1686a <trinity.pointard@gmail.com> Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
* Add date verification to presigned urls (#196)trinity-1686a2022-01-181-2/+2
| | | | | | | | | | fix #96 fix #162 by returning Forbidden instead Bad Request Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/196 Co-authored-by: trinity-1686a <trinity.pointard@gmail.com> Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
* Add quotes in returned etagsimprove-copiesAlex Auvolat2022-01-131-7/+35
|
* Testing for UploadPartCopies and bugfixes in AWS signaturesAlex Auvolat2022-01-131-0/+1
|
* Implement UploadPartCopyAlex Auvolat2022-01-131-35/+352
|
* Implement x-amz-copy-if-xxx copy preconditions and return more headers on ↵Alex Auvolat2022-01-131-0/+101
| | | | copy (fix #187)
* Fix some error codesAlex Auvolat2022-01-051-4/+4
|
* New model for bucketsAlex Auvolat2022-01-041-12/+8
|
* Improved XML serializationbetter_xmlAlex Auvolat2021-05-061-7/+9
| | | | | | - Use quick_xml and serde for all XML response returned by the S3 API. - Include tests for all structs used to generate XML - Remove old manual XML escaping function which was unsafe
* fix clippy warnings on apiTrinity Pointard2021-05-031-2/+1
|
* Time and metadata improvementsAlex Auvolat2021-03-151-18/+51
|
* Fix race conditionAlex Auvolat2021-03-151-15/+41
|
* Refactor model stuff, including cleaner CRDTsAlex Auvolat2021-03-101-5/+8
|
* Cargo fmtAlex Auvolat2021-02-231-2/+2
|
* add application/xml header and missing xml escapesAlex Auvolat2021-02-191-1/+3
|
* Replace with option syntaxic sugarQuentin2020-11-111-14/+6
|
* Refactor error management in API parterror-refactoringAlex Auvolat2020-11-081-1/+2
|
* cargo fmtAlex Auvolat2020-07-081-5/+5
|
* Migrate S3 api to use new modelAlex Auvolat2020-07-081-12/+8
|
* Update to Hyper 0.13.6 that accepts non-Sync streams in wrap_stream.Alex Auvolat2020-07-071-5/+3
| | | | Simplifies code and makes it possible to publish on crates.io
* Rename garage_core to garage_modelAlex Auvolat2020-07-071-4/+4
|
* Work on APIAlex Auvolat2020-04-281-0/+120