⚡ Free Public Beta  ·  Drop-in AWS S3 Egress Saver

Slash Your AWS S3
Egress Fees to $0.

A drop-in caching proxy that automatically caches your S3 files in Cloudflare R2 on the first request. Zero code rewrite, instant response, zero egress bills.

❌ Without Soko
💻 Your App
🧣 AWS S3
🌍 Internet Transfer
💸 $0.09 / GB Egress Fee
VS
✅ With Soko
💻 Your App
Soko Proxy
☁️ Cloudflare R2 Cache
🎉 $0 Egress — Cache HIT

See the Cache HIT in real time.

Every subsequent request is served from Cloudflare R2 — no AWS egress, no latency penalty.

Terminal — curl response
$ curl -i https://soko.aeorost.org/my-bucket/dataset.zip
HTTP/1.1 200 OK
X-Cache:              HIT
X-Cache-Source:       R2
Content-Type:         application/octet-stream
Cache-Control:        public, max-age=31536000
CF-Cache-Status:      HIT
X-Egress-Cost:        $0.00
TLS-Version:          TLSv1.3
$ 

Integration takes 30 seconds.

Keep your existing AWS SDKs. Just change the endpoint URL to soko.aeorost.org

python
import boto3 s3_client = boto3.client( 's3', endpoint_url='https://soko.aeorost.org', # Point to Soko region_name='eu-west-3' ) # Use your normal S3 code — zero changes needed response = s3_client.get_object( Bucket='my-bucket', Key='dataset.zip' ) data = response['Body'].read() print(f"Downloaded {len(data)} bytes — $0 egress!")
typescript
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"; const s3Client = new S3Client({ region: "eu-west-3", endpoint: "https://soko.aeorost.org", // Point to Soko forcePathStyle: true, }); // Fetch your object — zero S3 egress fees const response = await s3Client.send( new GetObjectCommand({ Bucket: "my-bucket", Key: "dataset.zip", }) ); console.log("Cache source:", response.$metadata.httpHeaders["x-cache-source"]); // → "R2"
bash
# Fetch directly via HTTPS — show response headers curl -i https://soko.aeorost.org/my-bucket/dataset.zip # Download and save the file curl -o dataset.zip https://soko.aeorost.org/my-bucket/dataset.zip # Check cache status only (no body download) curl -I https://soko.aeorost.org/my-bucket/dataset.zip # With verbose output to inspect TLS handshake curl -v --tlsv1.3 https://soko.aeorost.org/my-bucket/dataset.zip

Built for production. Designed for devs.

Everything you need to eliminate S3 egress costs without touching your existing codebase.

🔌

Drop-in Replacement

Fully compatible with all standard AWS SDKs — boto3, @aws-sdk/client-s3, and the AWS CLI. No code rewrites, no dependency changes. One URL swap is all it takes.

🚀

Non-Blocking Caching

Uses background writes (Cloudflare waitUntil) to cache content in R2 without adding latency to your first request. MISS is fast, HIT is faster.

🔐

AWS SigV4 Aware

Transparently handles AWS Signature Version 4 authentication. Works seamlessly with both private and public S3 buckets without exposing your credentials to end users.

🌍

Edge Latency

Cached responses are served from Cloudflare's 300+ edge nodes worldwide. Your users get sub-20ms responses with zero AWS egress charges — ever.

📢

Soko is 100% Free During Beta

Get up to 100 GB/month included bandwidth per project — absolutely free during the public beta period. Paid plans with guaranteed SLAs and higher quotas will be introduced later. Lock in your free tier now.

Common questions, answered.

Everything you need to know before you integrate.

No! S3 remains your single source of truth. Soko fetches from S3 on the first request (Cache MISS) and serves all subsequent requests from Cloudflare R2 (Cache HIT). Your data never leaves S3 — Soko just creates a transparent, cost-saving read layer in front of it.
Soko is optimized for read workloads — GET and HEAD requests are fully supported and cached. For write operations (PUT, POST, DELETE), continue using your direct S3 endpoint. Soko is intentionally read-focused to keep the proxy surface area small and secure.
Yes. All traffic is encrypted in transit via TLS 1.3, and every request passes through Cloudflare's enterprise-grade edge infrastructure — the same network protecting millions of production workloads. AWS SigV4 signatures are forwarded and verified per-request; credentials are never stored by Soko.
On the very first request, Soko fetches the object from your S3 bucket in real time. The response is immediately streamed back to your client while being asynchronously written to Cloudflare R2 in the background. The second request for the same object will always be a Cache HIT — served from R2 at $0 egress cost.
Bandwidth is tracked per project (unique S3 bucket prefix). During the beta, soft limits are enforced with graceful degradation — you will receive an email notification before any throttling occurs. A real-time usage dashboard is on the roadmap for the next major release.