Skip to main content

📖 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

OperationStatusNotes
ListBucketsYour buckets only
CreateBucketNames globally unique
HeadBucket
DeleteBucketMust be empty
GetBucketLocationReturns us-east-1
ListObjects (v1)prefix, delimiter, marker
ListObjectsV2prefix, delimiter, pagination, start-after, encoding-type=url
DeleteObjects (batch)

Object operations

OperationStatusNotes
PutObjectIncluding aws-chunked streaming bodies; custom x-amz-meta-*
GetObjectRange requests (206)
HeadObject
DeleteObjectSee S3 and IPFS semantics
CopyObjectZero-copy: instant regardless of size (same CID)
Presigned URLsSigV4 query auth, X-Amz-Expires honored

Multipart uploads

OperationStatusNotes
CreateMultipartUpload
UploadPart
CompleteMultipartUploadStandard md5-of-md5s-N ETag; produces one CID
AbortMultipartUpload
ListParts
UploadPartCopyPlanned

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-Match conditional requests (planned)

See Limits & Differences for behavioral differences from Amazon S3.