S3-compatible API
Use the AWS CLI, boto3, the JavaScript SDK or any S3 tool. Signature V4, multipart uploads, presigned URLs and versioning work as expected.
S3-compatible storage with a built-in edge delivery network across ten regions. Keep your SDKs and tools, serve every object from the closest point of presence, and pay predictable, published rates.
A single platform for durable storage and fast delivery, managed through the S3 API, a REST management API and the console.
Use the AWS CLI, boto3, the JavaScript SDK or any S3 tool. Signature V4, multipart uploads, presigned URLs and versioning work as expected.
Every bucket can be served from ten points of presence. No separate CDN contract, no origin configuration, one bill.
Transfer from storage to the edge is free. You pay for stored bytes, requests and delivered traffic at published rates.
Protect backups with WORM retention in governance or compliance mode, and restore any previous version of an object.
Issue keys limited to a bucket, a prefix and a set of actions, with optional expiry and source network restrictions.
Replicate buckets across regions asynchronously, expire old versions and move cold data with lifecycle rules.
Pick a home region. Your data is erasure-coded and stored only there unless you add replication.
Point your SDK at the regional endpoint. Multipart uploads run in parallel for large files.
Enable edge delivery and objects are cached in ten points of presence, close to every user.
Every region runs storage and an edge point of presence. Europe, Eurasia, the Middle East and Asia-Pacific are connected by our own backbone.
Change the endpoint, keep everything else. Credentials, signing, retries and multipart uploads behave exactly like the SDKs expect.
<region>.s3.tcnstorage.store<bucket>.cdn.tcnstorage.store# Point any S3 tool at your region endpoint
export AWS_ACCESS_KEY_ID="TCNK7Q2M4X9EXAMPLE"
export AWS_SECRET_ACCESS_KEY="<your secret key>"
aws s3 mb s3://media-assets --endpoint-url https://fra1.s3.tcnstorage.store
aws s3 cp ./poster.jpg s3://media-assets/2026/poster.jpg \
--endpoint-url https://fra1.s3.tcnstorage.store \
--cache-control "public, max-age=86400"import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://fra1.s3.tcnstorage.store",
region_name="fra1",
)
s3.upload_file("poster.jpg", "media-assets", "2026/poster.jpg",
ExtraArgs={"ContentType": "image/jpeg"})
url = s3.generate_presigned_url(
"get_object",
Params={"Bucket": "media-assets", "Key": "2026/poster.jpg"},
ExpiresIn=3600,
)
print(url)import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
import { readFile } from "node:fs/promises";
const s3 = new S3Client({
region: "fra1",
endpoint: "https://fra1.s3.tcnstorage.store",
});
await s3.send(new PutObjectCommand({
Bucket: "media-assets",
Key: "2026/poster.jpg",
Body: await readFile("poster.jpg"),
ContentType: "image/jpeg",
}));# Public buckets are served from the nearest edge PoP
curl -I https://media-assets.cdn.tcnstorage.store/2026/poster.jpg
HTTP/2 200
content-type: image/jpeg
cache-control: public, max-age=86400
x-tcn-edge: hit
x-tcn-region: fra1Usually not. Change the endpoint URL and credentials in your S3 client. For bulk migration, use rclone or the AWS CLI sync command against both endpoints.
Objects are erasure-coded across three failure domains inside a region and checksummed end to end. The design target is 99.999999999% annual durability.
Store data close to the systems that write it. Reads from anywhere are accelerated by the edge network, and you can add replicas in other regions later.
Yes. Starter includes 25 GB of storage and 100 GB of edge delivery per month at no cost, with no credit card required during evaluation.
Yes. Add a CNAME to your bucket's edge hostname and we issue and renew the TLS certificate automatically.
The security page describes encryption, access control and our disclosure policy. A data processing agreement is available on request.
Start on the free Starter plan or talk to our engineers about migration, volume pricing and SSO.