S3 compatibility matrix

BangmodStorage implements the subset of the Amazon S3 API that matters for object-storage workloads. If you build against the operations marked supported below, your existing AWS S3 code runs unchanged against our endpoints.

Bucket operations

OperationSupportedNotes
CreateBucketBucket names must match our naming rules. Whitespace and special chars rejected.
HeadBucketReturns 200 for owned buckets, 404 otherwise. No leakage of foreign bucket existence.
DeleteBucketMust be empty. Use aws s3 rb --force equivalent only after explicit confirmation.
ListBucketsReturns only buckets owned by the account associated with the access key.
GetBucketLocationReturns the region string (ap-southeast-1-bkk or ap-southeast-1-sg).
GetBucketAcl / PutBucketAcl⚠️Canned ACLs supported: private, public-read. Custom grantee lists not supported (use bucket policy).
GetBucketPolicy / PutBucketPolicyAWS-style IAM policy JSON. Subset of statements supported; see API reference.
GetBucketCors / PutBucketCorsStandard CORS rules for browser-side uploads.
GetBucketVersioning / PutBucketVersioningEnable/disable. Suspend semantics match AWS.
GetBucketLifecycle / PutBucketLifecycleObject expiration and incomplete-multipart cleanup. Transitions between storage classes not yet supported.
GetBucketLogging / PutBucketLoggingRoadmap. Use the Usage page for request-level metrics today.
GetBucketTagging / PutBucketTagging / DeleteBucketTaggingUp to 50 tags per bucket.
GetBucketReplication / PutBucketReplicationCross-region replication on roadmap.

Object operations

OperationSupportedNotes
PutObjectMax 5 GB single PUT. Use multipart for larger.
GetObjectRange requests, conditional GETs (If-Match, If-None-Match, If-Modified-Since), and partial-content responses supported.
HeadObjectMetadata only.
DeleteObjectSoft-delete when versioning enabled (delete marker), hard-delete otherwise.
DeleteObjectsBatch up to 1000 keys.
CopyObjectSame-account copies. Metadata directive REPLACE/COPY supported.
ListObjects (v1)Returns up to 1000 keys per response with paging via Marker.
ListObjectsV2Recommended. Use ContinuationToken for paging.
ListObjectVersionsOnly meaningful when versioning is enabled.
GetObjectTagging / PutObjectTaggingUp to 10 tags per object.
SelectObjectContentServer-side S3 Select not supported; download the object and parse client-side.
RestoreObjectNo archive tier yet.

Multipart upload

OperationSupportedNotes
CreateMultipartUpload
UploadPartMin 5 MB per part except the last; max 10,000 parts.
UploadPartCopy
CompleteMultipartUpload
AbortMultipartUploadRecommend a lifecycle rule to auto-clean stale uploads.
ListMultipartUploads
ListParts

Server-side encryption

ModeSupportedNotes
SSE-S3 (AES256, our keys)Default. Enabled at-rest for every object; transparent to clients.
SSE-C (customer-provided keys)Standard x-amz-server-side-encryption-customer-* headers.
SSE-KMS (managed KMS)Roadmap; we may integrate AWS KMS in future.

Presigned URLs

Fully SigV4-compatible. Max expiry 7 days. See Authentication.

What we don't do (yet)

  • S3 Select / GLACIER restore
  • Object Lock / WORM compliance mode (roadmap; needed for some regulated workloads)
  • Cross-region replication
  • Server access logging (use the customer console Usage page meanwhile)
  • Storage classes beyond "Standard" (no IA / Glacier tiers yet)
  • Transfer Acceleration / CloudFront-style edge caching

If a missing operation blocks your migration, email roadmap@bangmod.storage with your use case; we prioritise based on customer demand.