📖 Supported S3 Operations
Lighthouse S3 implements the S3 REST API surface that mainstream tools actually use. Requests are authenticated with AWS Signature Version 4 (header or presigned query form).
Service & bucket operations
| Operation | Status | Notes |
|---|---|---|
ListBuckets | ✅ | Your buckets only |
CreateBucket | ✅ | Names globally unique |
HeadBucket | ✅ | |
DeleteBucket | ✅ | Must be empty |
GetBucketLocation | ✅ | Returns us-east-1 |
ListObjects (v1) | ✅ | prefix, delimiter, marker |
ListObjectsV2 | ✅ | prefix, delimiter, pagination, start-after, encoding-type=url |
DeleteObjects (batch) | ✅ |
Object operations
| Operation | Status | Notes |
|---|---|---|
PutObject | ✅ | Including aws-chunked streaming bodies; custom x-amz-meta-* |
GetObject | ✅ | Range requests (206) |
HeadObject | ✅ | |
DeleteObject | ✅ | See S3 and IPFS semantics |
CopyObject | ✅ | Zero-copy: instant regardless of size (same CID) |
| Presigned URLs | ✅ | SigV4 query auth, X-Amz-Expires honored |
Multipart uploads
| Operation | Status | Notes |
|---|---|---|
CreateMultipartUpload | ✅ | |
UploadPart | ✅ | |
CompleteMultipartUpload | ✅ | Standard md5-of-md5s-N ETag; produces one CID |
AbortMultipartUpload | ✅ | |
ListParts | ✅ | |
UploadPartCopy | ❌ | Planned |
Compatibility stubs
These subresources return safe, well-formed defaults so common tooling (Terraform, rclone, consoles) doesn't break, but the features are not active:
versioning, acl, policy, lifecycle, cors, tagging, encryption, website, logging, notification, object-lock, replication, and similar bucket configuration endpoints.
Not supported
- Bucket policies / IAM — access is per keypair; each bucket has exactly one owner
- Object versioning API (although prior versions' CIDs are retained internally — see semantics)
- Object tagging,
If-Match/If-None-Matchconditional requests (planned)
See Limits & Differences for behavioral differences from Amazon S3.