Pilot pricing in Lagos: servers from ₦10 an hour, Spaces from ₦6,750 a month →
Docs menu

Docs / Spaces

Use Spaces with the AWS CLI

5 minute read

Spaces is S3-compatible object storage in Lagos. Anything that speaks S3 works with it once you point it at https://spaces.simplicloud.ai. Your plan includes 250 GB for ₦6,750 a month across all buckets, then ₦27 per GB; downloads are free during the pilot.

1. Create a bucket and an access key

Open Spaces object storage and choose Create bucket. Pick Private (only keys can read) or Public read (anyone with the link). Bucket names are global, lowercase, and can use letters, numbers and dashes.

Then choose New key under Access keys. Copy the secret now; it won't be shown again. Keys start with SC and can read and write all buckets in the organisation.

Terminal
simplicloud spaces buckets create kora-media --access private
simplicloud spaces keys create storefront
# access key SC4RVQLR37M6BQS3XC45
# secret wJ8x… (shown once)

2. Configure the AWS CLI

Save the key in a named profile so it does not clash with any real AWS credentials. Use region lagos1 and path-style addressing.

~/.aws/config and credentials
aws configure --profile simplicloud
# AWS Access Key ID: SC4RVQLR37M6BQS3XC45
# AWS Secret Access Key: <your secret>
# Default region name: lagos1
# Default output format: json
aws configure set profile.simplicloud.s3.addressing_style path
The AWS CLI has no setting for the endpoint in older versions, so pass --endpoint-url https://spaces.simplicloud.ai on every command. AWS CLI 2.13 and newer also accept endpoint_url = https://spaces.simplicloud.ai in the profile.

3. Upload, list and download

Files over 8 MB upload in parts automatically. sync only copies what changed, which makes it a good fit for backups.

Terminal
export AWS_PROFILE=simplicloud
S3="aws --endpoint-url https://spaces.simplicloud.ai s3"
$S3 cp ./menu.jpg s3://kora-media/menu.jpg
$S3 ls s3://kora-media/
$S3 sync ./uploads s3://kora-media/uploads --delete
$S3 cp s3://kora-media/menu.jpg ./menu-copy.jpg

4. Share a private file for a while

A presigned link lets someone download one object from a private bucket without a key. It stops working when it expires.

Terminal
aws --endpoint-url https://spaces.simplicloud.ai \
s3 presign s3://kora-invoices/2026/INV-0412.pdf --expires-in 3600
# https://spaces.simplicloud.ai/kora-invoices/2026/INV-0412.pdf?X-Amz-Algorithm=…

5. Use it from your code

Every S3 SDK works. Set the endpoint, the region and path-style access; keep the key in environment variables.

Node.js (AWS SDK v3)
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
const s3 = new S3Client({
endpoint: "https://spaces.simplicloud.ai",
region: "lagos1",
forcePathStyle: true,
credentials: {
accessKeyId: process.env.SPACES_KEY,
secretAccessKey: process.env.SPACES_SECRET,
},
});
await s3.send(new PutObjectCommand({
Bucket: "kora-media", Key: "products/jollof.jpg", Body: file, ContentType: "image/jpeg",
}));
Was this page helpful?

Related guides

Use Spaces with the AWS CLI · Docs · SimpliCloud