Object storage

Buckets that speak the S3 API, stored in Lusaka. Anything that works with S3 works here by changing the endpoint.

Two names for a bucket

The name you choose (say pics) is unique within your organisation. The bucket's physical name (pics-84d0711bd48d) is unique across the whole platform and is the one S3 clients use: s3://pics-84d0711bd48d/…. The console and CLI show both; the CLI accepts either.

Endpoint and credentials

cloud storage bucket create pics --region zm-lusaka-central-1
cloud storage bucket credentials pics --format env

Credentials come with everything a client needs:

  • Endpointhttps://s3.zm-lusaka-central-1.cloud.co.zm, path-style. Use signing region us-east-1.
  • Access key and secret — your organisation's S3 identity for the region.
  • Bucket name — the physical name to address.

Reading credentials needs the member role or above.

Using other tools

# AWS CLI
cloud storage bucket credentials pics --format aws-profile >> ~/.aws/config
aws --profile swiftcloud-pics s3 ls s3://pics-84d0711bd48d/

# rclone
cloud storage bucket credentials pics --format rclone >> ~/.config/rclone/rclone.conf
rclone sync ./site swiftcloud-pics:pics-84d0711bd48d/site

In any SDK: set the endpoint, force path-style addressing, region us-east-1, and pass the key pair.

Using the cloud CLI

cloud storage ls s3://pics-84d0711bd48d/
cloud storage cp ./photo.jpg s3://pics-84d0711bd48d/2026/photo.jpg
cloud storage sync ./site s3://pics-84d0711bd48d/site --delete
cloud storage presign s3://pics-84d0711bd48d/2026/photo.jpg --expires 1h

Objects go straight from your machine to the storage endpoint; they never pass through the platform. Large files upload in parallel parts; sync compares size and ETag and resumes.

Pre-signed URLs

A pre-signed URL lets someone without credentials fetch (or upload) one object for a limited time, up to seven days. The console can mint one; so can the CLI, locally, without a round trip.

Delete

cloud storage bucket delete pics

Deletes the bucket and every object in it. There is no undo. The CLI confirms by name.