Store anything.
Serve it fast.
Object storage that scales from a single file to petabytes, with the same S3-compatible API the whole way. CDN delivery included, no configuration required.
Drop-in S3 replacement
Every library, SDK, and tool that works with Amazon S3 works here with zero code changes โ including the AWS SDK, Boto3, Multer-S3, ActiveStorage, and Paperclip.
Point your endpoint at s3.nodesail.app and change nothing else. Your existing S3 code runs unchanged.
import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
const client = new S3Client({
endpoint: "https://s3.nodesail.app",
region: "auto",
credentials: {
accessKeyId: process.env.NS_ACCESS_KEY!,
secretAccessKey: process.env.NS_SECRET_KEY!,
},
});
await client.send(new PutObjectCommand({
Bucket: "my-app",
Key: `avatars/${userId}.webp`,
Body: fileBuffer,
ContentType: "image/webp",
}));
// File is now live at CDN:
// https://cdn.nodesail.app/my-app/avatars/{userId}.webpWhat comes in the box
Global CDN delivery
Built-inEvery object is served from the edge node closest to the requesting user. No extra configuration.
Object versioning
OptionalEnable versioning on any bucket and roll back any file to any previous version instantly.
Pre-signed URLs
Built-inGenerate time-limited, signed URLs for private objects โ perfect for user file downloads.
Lifecycle policies
OptionalAutomatically move cold objects to cheaper tiers or delete them after a defined period.
Real-time webhooks
OptionalTrigger serverless functions automatically on upload, modification, or deletion.
Encryption at rest
DefaultAES-256 encryption for every object by default. Keys managed by Nodesail or bring your own.
Simple pricing
You pay for storage used and data transferred. That's it.
| Tier | Storage | Egress |
|---|---|---|
| Free | 5 GB | 10 GB / month |
| Starter | $0.015 / GB | $0.08 / GB |
| Pro+ | $0.010 / GB | $0.05 / GB |