Skip to content

Buckets

A bucket holds objects. Each belongs to one organization (or, self-hosted, one account) and is billed to it.

Names

Bucket names are unique across all of SwiftFS, as on AWS, because virtual-hosted addresses (bucket.endpoint) need them to be. They follow S3's rules:

  • 3 to 63 characters: lowercase letters, digits, hyphens and dots;
  • start and end with a letter or digit, no .., .- or -.;
  • not shaped like an IP address, and without the prefixes and suffixes S3 reserves (xn--, sthree-, -s3alias…).

Prefix names with your own (acme-media), and avoid dots if you will use virtual-hosted style over TLS.

Creating and deleting

Terminal
aws --endpoint-url "$S3_ENDPOINT" s3 mb s3://acme-media
aws --endpoint-url "$S3_ENDPOINT" s3 rb s3://acme-media      # only when empty
aws --endpoint-url "$S3_ENDPOINT" s3 rb s3://acme-media --force   # deletes the objects first

Or from the console: Buckets → Create bucket, and Settings → Delete bucket (type its name to confirm). A bucket must be empty to be deleted; uploads still in progress are aborted.

A bucket's region must be the deployment's region (us-east-1 on SwiftFS Cloud), which is what SDKs send by default.

Configuration

SettingHow
Who can read itPrivate by default. A bucket policy can make paths public.
Browser accessCORS rules
Storage classSTANDARD only

The console's bucket settings page shows whether a bucket is public or has CORS rules, with the commands to change them.

Not yet supported

Versioning (GetBucketVersioning reports unversioned), lifecycle rules, default encryption, tagging, website hosting, replication, notifications and Object Lock. Bucket ACLs are not used: buckets behave like S3's default bucket owner enforced setting. Versioning and lifecycle rules are on the roadmap.