Object Storage

S3-compatible buckets, on the tools you already use.

Buckets are served at buckets.excloud.dev — point aws s3, rclone, MinIO's mc, or any AWS SDK at it with path-style addressing and the rest is unchanged. Storage, requests, and (today) free ingress and egress — all metered hourly in INR.

$ exc buckets create my-first-bucket

The rate card

Three things you pay for, one you don't.

Storage is metered continuously by the hour. Requests are counted and billed per million. Data transfer into and out of buckets is currently free; usage is still recorded so any future change is transparent.

Rates verified against docs.excloud.in/docs/pricing/buckets/
Dimension Notes Rate
Storage per GiB, per month, metered hourly ₹1.30 /GiB·mo
Class A requests PUT, COPY, POST, LIST ₹390 /million
Class B requests GET, HEAD ₹31 /million
Ingress (upload) to bucket free
Egress (download) from bucket free

S3 compatibility

Your existing tools, unchanged.

The endpoint is shared across every org and resolved from your access key — your org ID is not in the URL. Path-style addressing only (some SDKs default to virtual-hosted-style and need a flag). The compatibility matrix lists what works and what doesn't, including presigned URLs, range reads, and multipart.

  • AWS CLIaws --endpoint-url https://buckets.excloud.dev s3 cp ...
  • boto3boto3.client('s3', endpoint_url='…', config=Config(s3=dict(addressing_style='path')))
  • Terraformexcloud_bucket and excloud_bucket_access_key resources
exc · aws cli
$ exc buckets create my-first-bucket
 bucket my-first-bucket created

$ exc buckets keys create laptop
ACCESS_KEY_ID:     EXCEXCLOUDEXAMPLEKEY
SECRET_ACCESS_KEY: wJalr...EXAMPLEKEY

$ export AWS_ACCESS_KEY_ID=EXCEXCLOUDEXAMPLEKEY
$ export AWS_SECRET_ACCESS_KEY=wJalr...EXAMPLEKEY
$ export AWS_REGION=auto

$ aws --endpoint-url https://buckets.excloud.dev \
     s3 cp ./hello.txt s3://my-first-bucket/hello.txt
 upload: ./hello.txt to s3://my-first-bucket/hello.txt

What works

The S3 surface we support.

ListBuckets, HeadBucket, CreateBucket, DeleteBucket, GetBucketLocation, GetBucketAcl. All object operations including multipart and bulk delete. Presigned URLs for GET and HEAD. Range reads. Server-side encryption on by default.

What we don't (yet)

A short, honest list.

PutBucketAcl and per-object ACLs are effectively read-only. Object versioning is not shipped yet — if you need versioned buckets, hold off or run a second bucket for new writes. Bucket names are unique per org, not global, so pick something that describes your org.

Make a bucket

100 GiB, 2M writes, 10M reads: about ₹1,220 a month.