Quick Start

CloudStore uses standard S3-compatible authentication. Generate your Access Key and Secret Key from the dashboard under Settings → API Keys.

Authentication

All API requests require an HTTP Authorization header containing your API Access Key and Secret Key, signed using HMAC-SHA256 (AWS Signature V4).

Authorization: AWS4-HMAC-SHA256 Credential=CSAK.../20260611/eu-central-1/s3/aws4_request, ...

Upload an Object (AWS CLI)

We recommend using the official AWS CLI for interacting with your buckets. Simply point the endpoint URL to our European region.

aws s3 cp document.pdf s3://enterprise-data/ \
  --endpoint-url https://ro.cloudstorestorage.dev \
  --profile cloudstore

Upload an Object (Python Boto3)

For programmatic access, use the standard boto3 library. CloudStore is fully compatible with AWS Signature V4.

import boto3

s3 = boto3.client('s3',
    endpoint_url='https://ro.cloudstorestorage.dev',
    aws_access_key_id='YOUR_ACCESS_KEY',
    aws_secret_access_key='YOUR_SECRET_KEY'
)

s3.upload_file('document.pdf', 'enterprise-data', 'document.pdf')

Generate Presigned URL

Create a time-limited download link for sharing objects externally. Presigned URLs are generated locally by your client using your secret key.

url = s3.generate_presigned_url(
    ClientMethod='get_object',
    Params={'Bucket': 'enterprise-data', 'Key': 'reports/q1.pdf'},
    ExpiresIn=3600
)
print(url)

Error Codes

The API returns standard HTTP status codes. All error responses include a JSON body with code and message fields.

{
  "code": "NoSuchBucket",
  "message": "The specified bucket does not exist.",
  "request_id": "req_8f3a2b1c"
}

Rate Limits

API requests are rate-limited per plan tier. Developer: 100 req/s. Business: 1,000 req/s. Enterprise: custom. Exceeding limits returns 429 Too Many Requests with a Retry-After header.

SDKs & Libraries

Official SDKs are available for Python, Node.js, Go, and Java. Community-maintained libraries exist for Rust, PHP, and Ruby. All SDKs are open-source on GitHub.