aboutsummaryrefslogtreecommitdiff
path: root/content/documentation/reference_manual/s3_compatibility.md
diff options
context:
space:
mode:
authorsptaule <lecas83@gmail.com>2022-01-24 20:58:36 +0100
committersptaule <lecas83@gmail.com>2022-01-24 20:58:36 +0100
commitdc932f973593747697b98aa612a308df889741ab (patch)
treed1b88306af8373d650161e845c26690a52e32d29 /content/documentation/reference_manual/s3_compatibility.md
parent336fd3f7566c7872c17b30f7cd150e1d16899205 (diff)
downloadgaragehq.deuxfleurs.fr-dc932f973593747697b98aa612a308df889741ab.tar.gz
garagehq.deuxfleurs.fr-dc932f973593747697b98aa612a308df889741ab.zip
Added doc book
Diffstat (limited to 'content/documentation/reference_manual/s3_compatibility.md')
-rw-r--r--content/documentation/reference_manual/s3_compatibility.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/content/documentation/reference_manual/s3_compatibility.md b/content/documentation/reference_manual/s3_compatibility.md
new file mode 100644
index 0000000..4c4c645
--- /dev/null
+++ b/content/documentation/reference_manual/s3_compatibility.md
@@ -0,0 +1,60 @@
+# S3 Compatibility status
+
+## 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-key-per-bucket basis
+
+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 |
+| DeleteBucketWebsite | Implemented |
+| DeleteObject | Implemented |
+| DeleteObjects | 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 |
+| 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.
+