API reference

BangmodStorage exposes the S3 protocol; the canonical reference for request/response formats is AWS's S3 API documentation. The compatibility matrix at /docs/s3-compatibility lists which operations we implement.

This page describes only the points where our gateway diverges from AWS or where you need BangmodStorage-specific information.

Endpoints

RegionEndpointRegion string (SigV4)
Bangkokhttps://s3.bkk.bangmod.storageap-southeast-1-bkk
Singaporehttps://s3.sg.bangmod.storageap-southeast-1-sg

Addressing styles

Both styles supported:

  • Path-style: https://s3.bkk.bangmod.storage/<bucket>/<key>
  • Virtual-hosted style: https://<bucket>.s3.bkk.bangmod.storage/<key>

Virtual-hosted requires a wildcard TLS certificate, which we provide for our subdomains. If you are using a custom domain via CNAME, path-style is more reliable until you provide your own cert.

Common response headers

HeaderDescription
x-amz-request-idUnique per request. Include in support tickets.
x-amz-id-2Extended request ID (debug-only).
x-bgs-regionBangmodStorage-specific. Confirms which region served the request.
etagMD5 of the object body for single-part uploads; opaque token for multi-part.

Rate limits

Default per-account limits as of 2026-05-27:

Operation classSustained limitBurst
PUT / POST / DELETE / COPY3,500 req/sec per prefix10× for 30 s
GET / HEAD5,500 req/sec per prefix10× for 30 s
LIST500 req/sec per bucket3× for 30 s

Limits scale with usage. Email support@bangmod.storage if you have throughput patterns that exceed these — we can raise the ceiling on validated workloads.

When throttled, responses return HTTP 503 with x-amz-error-code: SlowDown. Implement exponential backoff as you would against AWS.

Bucket-policy statements supported

ActionSupported
s3:GetObject
s3:PutObject
s3:DeleteObject
s3:ListBucket
s3:GetObjectVersion
Any action prefixed kms:❌ (SSE-KMS not yet supported)

Conditions supported: aws:SourceIp, aws:Referer, aws:SecureTransport, s3:prefix. Wildcard principals ("Principal": "*") supported.

Object metadata

Up to 2 KB of user-defined metadata per object via x-amz-meta-* headers. Stored case-insensitively; returned lowercase on GET.

System metadata (Content-Type, Content-Encoding,Cache-Control, Content-Disposition, Content-Language, Expires) supported with AWS-identical semantics.

Versioning

Enable per-bucket via PutBucketVersioning. Once enabled:

  • Every PutObject creates a new version with a unique x-amz-version-id.
  • DeleteObject creates a delete marker rather than removing data; specify versionId to delete a specific version.
  • Suspending versioning preserves existing versions but new PUTs create the "null" version.

Multipart upload limits

  • Min part size: 5 MB (except the last part)
  • Max part size: 5 GB
  • Max parts: 10,000
  • Max object size: 5 TB
  • Recommend lifecycle rule to abort incomplete uploads after 7 days.