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
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 firstOr 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
| Setting | How |
|---|---|
| Who can read it | Private by default. A bucket policy can make paths public. |
| Browser access | CORS rules |
| Storage class | STANDARD 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.