aboutsummaryrefslogtreecommitdiff
path: root/doc/book/reference-manual/s3-compatibility.md
diff options
context:
space:
mode:
authorAlex <alex@adnab.me>2022-02-07 11:51:12 +0100
committerAlex <alex@adnab.me>2022-02-07 11:51:12 +0100
commit1c0ba930b8d6aa5d97e6942852240861e6ab9bed (patch)
treecddc9af5fc2378c76fe5ef6306f807e27648b7a7 /doc/book/reference-manual/s3-compatibility.md
parent45d6d377d2011d8fb4ceb13bb4584df97c458525 (diff)
downloadgarage-1c0ba930b8d6aa5d97e6942852240861e6ab9bed.tar.gz
garage-1c0ba930b8d6aa5d97e6942852240861e6ab9bed.zip
Reorganize documentation for new website (#213)
This PR should be merged after the new website is deployed. - [x] Rename files - [x] Add front matter section to all `.md` files in the book (necessary for Zola) - [x] Change all internal links to use Zola's linking system that checks broken links - [x] Some updates to documentation contents and organization Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/213 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me>
Diffstat (limited to 'doc/book/reference-manual/s3-compatibility.md')
-rw-r--r--doc/book/reference-manual/s3-compatibility.md67
1 files changed, 67 insertions, 0 deletions
diff --git a/doc/book/reference-manual/s3-compatibility.md b/doc/book/reference-manual/s3-compatibility.md
new file mode 100644
index 00000000..fdac06ab
--- /dev/null
+++ b/doc/book/reference-manual/s3-compatibility.md
@@ -0,0 +1,67 @@
++++
+title = "S3 Compatibility status"
+weight = 20
++++
+
+## Global S3 features
+
+Implemented:
+
+- path-style URLs (`garage.tld/bucket/key`)
+- vhost-style URLs (`bucket.garage.tld/key`)
+- putting and getting objects in buckets
+- multipart uploads
+- listing objects
+- access control on a per-access-key-per-bucket basis
+- CORS headers on web endpoint
+
+Not implemented:
+
+- object-level ACL
+- [object versioning](https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/166)
+- encryption
+- most `x-amz-` headers
+
+
+## Endpoint implementation
+
+All APIs that are not mentionned are not implemented and will return a 501 Not Implemented.
+
+| Endpoint | Status |
+|------------------------------|----------------------------------|
+| AbortMultipartUpload | Implemented |
+| CompleteMultipartUpload | Implemented |
+| CopyObject | Implemented |
+| CreateBucket | Implemented |
+| CreateMultipartUpload | Implemented |
+| DeleteBucket | Implemented |
+| DeleteBucketCors | Implemented |
+| DeleteBucketWebsite | Implemented |
+| DeleteObject | Implemented |
+| DeleteObjects | Implemented |
+| GetBucketCors | Implemented |
+| GetBucketLocation | Implemented |
+| GetBucketVersioning | Stub (see below) |
+| GetBucketWebsite | Implemented |
+| GetObject | Implemented |
+| HeadBucket | Implemented |
+| HeadObject | Implemented |
+| ListBuckets | Implemented |
+| ListObjects | Implemented, bugs? (see below) |
+| ListObjectsV2 | Implemented |
+| ListMultipartUpload | Implemented |
+| ListParts | Implemented |
+| PutObject | Implemented |
+| PutBucketCors | Implemented |
+| PutBucketWebsite | Partially implemented (see below)|
+| UploadPart | Implemented |
+| UploadPartCopy | Implemented |
+
+
+- **GetBucketVersioning:** Stub implementation (Garage does not yet support versionning so this always returns
+"versionning not enabled").
+
+- **ListObjects:** Implemented, but there isn't a very good specification of what `encoding-type=url` covers so there might be some encoding bugs. In our implementation the url-encoded fields are in the same in ListObjects as they are in ListObjectsV2.
+
+- **PutBucketWebsite:** Implemented, but only stores the index document suffix and the error document path. Redirects are not supported.
+