S3 Gateway
Supported operations
The gateway supports the core S3 verbs needed for daily file management
plus multipart upload. Anything not in the table below is not implemented.
Buckets
| Operation | HTTP | Path | Notes |
| ListBuckets | GET | / | Returns all buckets owned by the authenticated user. |
| HeadBucket | HEAD | /<bucket> | 200 if the bucket exists, 404 NoSuchBucket otherwise. |
| CreateBucket | PUT | /<bucket> | No-op. Buckets map to existing connections; a 200 is always returned. |
| DeleteBucket | DELETE | /<bucket> | No-op. Use the dashboard to disconnect a connection. |
| GetBucketLocation | GET | /<bucket>?location= | Returns the configured region. |
| GetBucketAcl | GET | /<bucket>?acl= | Stub: owner = user, full control. |
| GetBucketVersioning | GET | /<bucket>?versioning= | Returns <Status>Suspended</Status>. |
| ListObjectVersions | GET | /<bucket>?versions | Empty result; version history is not retained. |
Objects
| Operation | HTTP | Path | Notes |
| ListObjectsV2 | GET | /<bucket>?list-type=2&prefix=&delimiter=/&max-keys=1000 | Folder-based listing. continuation-token supported. |
| ListObjects (V1) | GET | /<bucket>?prefix=&delimiter=/&marker=&max-keys= | Same data, marker-based pagination. |
| HeadObject | HEAD | /<bucket>/<key> | Headers only. |
| GetObject | GET | /<bucket>/<key> | Streamed whole-object. Range requests are not supported in v1. |
| PutObject | PUT | /<bucket>/<key> | Single-part; ETag is the hex MD5 of the body. Trailing / creates a folder marker. |
| DeleteObject | DELETE | /<bucket>/<key> | Idempotent (204 even if absent). |
Multipart upload
| Operation | HTTP | Path / query | Notes |
| CreateMultipartUpload | POST | /<bucket>/<key>?uploads | Returns an uploadId. |
| UploadPart | PUT | /<bucket>/<key>?partNumber=N&uploadId=… | Each part gets its own ETag. |
| CompleteMultipartUpload | POST | /<bucket>/<key>?uploadId=… | Body: <CompleteMultipartUpload> XML with parts. |
| AbortMultipartUpload | DELETE | /<bucket>/<key>?uploadId=… | Removes the multipart row and any uploaded part files. |
| ListMultipartUploads | GET | /<bucket>?uploads | Lists in-progress multipart uploads for the bucket. |
| ListParts | GET | /<bucket>/<key>?uploadId=… | List parts of an in-progress multipart upload. |
Not yet supported
Range requests (partial reads). If-Match / If-None-Match precondition checks. CopyObject. - Versioned deletes (
DeleteMarker). - ACLs and policies.
- Server-side encryption with KMS / SSE-C.