Skip to main content
Object Storage

S3-compatible object storage,hosted in India.

Back-up artifacts, host static assets, store user uploads. Standard AWS S3 API surface, INR-priced per gigabyte, with a generous free monthly tier that rolls into the next bill cycle.

  • AWS S3 API — any S3 client works
  • Per-bucket lifecycle, CORS, versioning
  • Per-key ACLs: read, write, list, delete
  • Free 5 GB stored, 10 GB egress / month
  • Streaming multipart uploads
  • Byte-accurate billing via log shipper
  • GST invoices · SAC 998314
  • INR billing · Razorpay e-mandate
  • TOTP 2FA · AES-256 secrets at rest
  • 90-day audit log · per-IP API keys
  • Cashfree KYC · DPDP-aware
  • Servers in India
What's in the box

Boring, standard, S3.

If your application speaks S3, it speaks Rudra Cloud Object Storage. Endpoint URL, access key, secret — wired up in under a minute.

Per-key ACLs

Generate multiple access keys per bucket with read / write / list / delete grants. Rotate without downtime; secret shown once at creation.

Lifecycle rules

Configure object expiration and incomplete-multipart cleanup per bucket. Versioning is opt-in, per bucket.

Streaming uploads

Multi-gigabyte files via presigned multipart uploads. Direct PUT to Garage; the panel never proxies your bytes.

Region-isolated

Each region is a standalone Garage instance. No cross-region replication in v1 — your data stays where you put it.

AWS S3 API surface

Use the standard AWS SDKs (s3cmd, awscli, boto3, aws-sdk-js, mc) by pointing them at the region endpoint. No proprietary client.

Honest billing

We meter via an HMAC-signed daemon that tails Garage's access log — not Garage's own metrics — so per-bucket usage is byte-accurate.

Pricing model

Three meters, no fine print.

Storage, egress, and operations — billed per gigabyte and per 1,000 ops. Ingress is free; intra-region API calls are not billed.

Standard

India

S3-compatible object storage in India. Ingress free, monthly free tier rolls into the next bill cycle.

Storage
₹1.50 / GB / mo
Egress
₹0.80 / GB
Reads & lists
₹0.30 / 1k ops
Writes & deletes
₹0.50 / 1k ops
Ingress
Free
Free tier
5 GB + 10 GB egress / mo

All prices exclude 18% GST. Free tier rolls into the next monthly bill cycle.

Estimate my bill
Quick start

If your code already talks to S3, this is the only line you change.

awscli
aws configure set aws_access_key_id   $RC_ACCESS_KEY
aws configure set aws_secret_access_key $RC_SECRET_KEY

aws --endpoint-url https://s3.blr.rudracloud.in \
    s3 cp ./build.tar.gz s3://my-bucket/releases/
Node.js · @aws-sdk/client-s3
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";

const s3 = new S3Client({
  endpoint: "https://s3.blr.rudracloud.in",
  region: "blr",
  credentials: {
    accessKeyId: process.env.RC_ACCESS_KEY!,
    secretAccessKey: process.env.RC_SECRET_KEY!,
  },
  forcePathStyle: true,
});

await s3.send(new PutObjectCommand({
  Bucket: "my-bucket",
  Key: "uploads/avatar.png",
  Body: file,
}));