Everything you expect from S3 — verifiable in the docs
Every capability below is exposed in E2E's public Object Storage API, not just a slide.
Standard S3 API
Each bucket comes with an access key, secret key and endpoint URL from the console. Point boto3, s3cmd, rclone or any S3-compatible SDK at it — E2E's own Kubernetes guide mounts EOS with the open-source Datashim operator, unmodified.
Versioning & lifecycle
Turn on bucket versioning to keep every revision of a model checkpoint, and attach lifecycle rules — added, updated or deleted per bucket via API — to expire stale objects automatically.
Cross-bucket replication
Replication policies copy objects to a destination bucket via the API — a documented primitive for keeping a second copy of critical datasets or artifacts.
Object lock & legal hold
WORM-style protection at bucket and object level, plus legal hold on individual objects — the retention primitives auditors ask about, exposed as first-class API operations.
Pre-signed URLs
Grant time-limited access to a single private object — hand a dataset sample to a collaborator or let an inference job fetch weights — without ever making the bucket public.
Keys & permissions
Create and rotate storage users and access keys via API, scope bucket permissions per user, and track consumption with the usage endpoint. Access control is code, not tickets.
The dataset layer under TIR and your GPU fleet
Object storage on E2E isn't a bolt-on — it's the data plane the rest of the platform pulls from. TIR training jobs and notebooks attach datasets directly; Kubernetes pods mount buckets as PVCs via Datashim; inference endpoints load model weights from the same buckets they were checkpointed to, while runtime images live next door in the Container Registry.
Upload a training dataset
ExampleStandard boto3 against your EOS endpoint — no vendor SDK required:
# Example — endpoint & keys come from MyAccount › Object Storage
import boto3
s3 = boto3.client(
"s3",
endpoint_url="<EOS_ENDPOINT_URL>",
aws_access_key_id="<EOS_ACCESS_KEY_ID>",
aws_secret_access_key="<EOS_SECRET_ACCESS_KEY>",
)
s3.upload_file("train-shard-0001.tar", "llm-datasets",
"fineweb/train-shard-0001.tar")How it works
From empty account to data-fed GPUs in four steps.
Create a bucket
From MyAccount › Object Storage or the REST API — pick your region (Delhi or Chennai) and a bucket name.
Generate credentials
Create a storage user to get an access key and secret key, and scope its bucket permissions. Rotate keys via API whenever you like.
Move data with S3 tools
Point boto3, rclone or your existing pipeline at the endpoint URL. Enable versioning and lifecycle rules where it matters.
Feed your workloads
Attach as a TIR dataset, mount into Kubernetes with Datashim, or stream from GPU nodes in the same data center.
Standards & API surface
What's documented, where it's documented, and what to verify on the live rate card.
| Capability | Status | Detail |
|---|---|---|
| S3-compatible API | Documented | Access key + secret key + endpoint URL per the E2E Kubernetes object-storage guide; works with standard S3 clients and Datashim |
| Bucket operations | Documented | Create, list, delete buckets; list and delete objects — Object Storage section of the MyAccount REST API |
| Versioning | Documented | Per-bucket versioning toggle via API |
| Lifecycle rules | Documented | Add, update and delete lifecycle rules per bucket |
| Replication | Documented | Cross-bucket replication policies with destination bucket listing |
| Object lock / legal hold | Documented | Bucket- and object-level lock plus legal hold (WORM retention) |
| Pre-signed URLs | Documented | Time-limited object access via API |
| Access management | Documented | Storage users, key rotation, per-bucket permissions, usage metering |
| Regions | Documented | Indian data centers — Delhi & Chennai |
| Per-GB rate | On rate card | Pay-for-what-you-store, billed in INR* — see pricing |
*Indicative — see the live rate card for current pricing. For throughput sizing on your dataset and access pattern, benchmark it yourself or ask an engineer.
What teams put in EOS
The same bucket primitives, three very different jobs.
Training datasets
Shard your corpus into a versioned bucket and attach it to TIR training jobs or stream to GPU nodes. For shared multi-node file access during training, pair with Parallel File Storage.
Model artifacts & checkpoints
Version every checkpoint, lock release weights with object lock, and serve them to inference endpoints via pre-signed URLs or direct S3 reads.
Backups & logs
Velero backs up Kubernetes clusters to object storage; load balancers ship access logs to it; lifecycle rules expire old restore points. Boot volumes live on Block Storage instead.
Frequently Asked Questions
Everything you need to know about AI Object Storage.
AI Object Storage
Really compatible. You get an access key, secret key and endpoint URL and point standard S3 tooling at it. The cleanest proof is in E2E's own docs: the Kubernetes guide mounts EOS buckets using Datashim, a third-party open-source operator built for S3-compatible stores — no E2E-specific client anywhere in the flow.
Three documented paths: attach it as a dataset to a TIR notebook or training instance; mount it into Kubernetes pods as a PVC via Datashim (mounted at /mnt/datasets/<name> by convention); or read it directly over the S3 API from any compute or GPU node.
Yes — enable object lock on the bucket or object, and add legal hold for individual objects that must survive deletion attempts. Both are documented API operations, and versioning gives you history on top.
Storage is billed per GB in INR with GST invoices; see the live rate card for current storage and transfer rates*. Keeping datasets in the same data center as your GPUs avoids cross-region transfer entirely.
That's the point of standards: your data is plain objects behind an S3 API. rclone or aws-cli can copy the whole bucket to any other S3-compatible store — no export tools, no proprietary formats, no exit negotiation.
Put your datasets next to your GPUs
Create a bucket in minutes — no sales call required.