Your bucket
Any storage that speaks S3.
Set an endpoint and s3nd adjusts the two defaults S3-compatible providers expect. Both stay overridable. The CLI writes a starter configuration for each provider, and doctor tells you whether it actually works.
const store = createBucket({
bucket: 'transfers',
endpoint: 'https://…', // set this, and two defaults follow:
// region: 'auto' // for providers that ignore the region
// forcePathStyle: true // https://endpoint/bucket/key
})Providers
Pick yours.
s3nd init --provider r2
Cloudflare R2
No egress fees, which is exactly what moving a 2 GB file between two laptops wants.
s3nd init --provider aws
AWS S3
The original. Credentials come from the provider chain, so a Lambda or an ECS task needs no keys at all.
s3nd init --provider minio
MinIO
One Docker command, and the real code path runs on your laptop and in CI.
s3nd init --provider scaleway
Scaleway Object Storage
European regions, S3-compatible, and the region actually means something.
s3nd init --provider wasabi
Wasabi
Flat-rate storage with no egress charge, on a regional endpoint.
Not listed? Ceph, Garage, SeaweedFS, Backblaze B2, DigitalOcean Spaces and the rest work the same way: an endpoint, a key pair, and s3nd doctor to confirm the conditional writes are honoured. The CLI has the details.
Put a file. Hand over the code.
Point it at the bucket you already pay for. Nothing to deploy, nothing to sign up for, nothing in the middle.
npm install -g @s3nd/clis3nd init --provider r2 --bucket drops3nd put ./anything.zip