mirror of
https://github.com/ferdzo/fs.git
synced 2026-04-05 08:46:24 +00:00
S3 compatibility and openapi spec.
This commit is contained in:
53
docs/s3-compatibility.md
Normal file
53
docs/s3-compatibility.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# S3 Compatibility Matrix
|
||||
|
||||
This project is S3-compatible for a focused subset of operations.
|
||||
|
||||
## Implemented
|
||||
|
||||
### Service and account
|
||||
- `GET /` list buckets
|
||||
|
||||
### Bucket
|
||||
- `PUT /{bucket}` create bucket
|
||||
- `HEAD /{bucket}` head bucket
|
||||
- `DELETE /{bucket}` delete bucket (must be empty)
|
||||
- `GET /{bucket}?list-type=2...` list objects v2
|
||||
- `GET /{bucket}?location` get bucket location
|
||||
- `POST /{bucket}?delete` delete multiple objects
|
||||
|
||||
### Object
|
||||
- `PUT /{bucket}/{key}` put object
|
||||
- `GET /{bucket}/{key}` get object
|
||||
- `HEAD /{bucket}/{key}` head object
|
||||
- `DELETE /{bucket}/{key}` delete object
|
||||
- `GET /{bucket}/{key}` supports single-range requests
|
||||
|
||||
### Multipart upload
|
||||
- `POST /{bucket}/{key}?uploads` initiate
|
||||
- `PUT /{bucket}/{key}?uploadId=...&partNumber=N` upload part
|
||||
- `GET /{bucket}/{key}?uploadId=...` list parts
|
||||
- `POST /{bucket}/{key}?uploadId=...` complete
|
||||
- `DELETE /{bucket}/{key}?uploadId=...` abort
|
||||
|
||||
### Authentication
|
||||
- AWS SigV4 header auth
|
||||
- AWS SigV4 presigned query auth
|
||||
- `aws-chunked` payload decode for streaming uploads
|
||||
|
||||
## Partially Implemented / Differences
|
||||
- Exact parity with AWS S3 error codes/headers is still evolving.
|
||||
- Some S3 edge-case behaviors may differ (especially uncommon query/header combinations).
|
||||
- Admin API is custom JSON (`/_admin/v1/*`).
|
||||
|
||||
## Not Implemented (Current)
|
||||
- Bucket versioning
|
||||
- Lifecycle rules
|
||||
- Replication
|
||||
- Object lock / legal hold / retention
|
||||
- SSE-S3 / SSE-KMS / SSE-C
|
||||
- ACL APIs and IAM-compatible policy APIs
|
||||
- STS / temporary credentials
|
||||
- Event notifications
|
||||
- Tagging APIs
|
||||
- CORS APIs
|
||||
- Website hosting APIs
|
||||
Reference in New Issue
Block a user