Any S3 SDK
The AWS SDK or any other S3 library works. Point it at S3_ENDPOINT and set forcePathStyle to true.
Every project gets its own S3-compatible bucket and a key that only works there. Upload straight from the browser with presigned URLs and manage files in a built-in browser.
A private S3-compatible bucket per project, with a file browser and presigned URLs.
The AWS SDK or any other S3 library works. Point it at S3_ENDPOINT and set forcePathStyle to true.
Your server signs a PUT URL and the browser sends the file straight to the bucket. It never passes through your server.
The bucket is never public and its key can only list, read, write and delete in that one bucket. Share files with links that expire.
Browse folders, preview images, video, audio and PDFs, upload with progress, and see what uses the space.
List the sites allowed to upload. Development already allows localhost on any port; production allows only what you add.
Nightly Postgres backups are stored in the bucket under _backups/postgres/, next to your own files.
Click Deploy on the Storage card. You get a bucket named proj-<slug> and a key for that bucket only.
Copy the five S3_ variables to your server and create an S3 client with forcePathStyle set to true.
Add your site under Allowed upload domains, sign PUT URLs on the server and let the browser send the files.
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
export const s3 = new S3Client({
endpoint: process.env.S3_ENDPOINT,
region: process.env.S3_REGION,
forcePathStyle: true,
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY_ID!,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY!,
},
});
// A link the browser can PUT a file to for one hour.
export const uploadUrl = (key: string, contentType: string) =>
getSignedUrl(s3, new PutObjectCommand({
Bucket: process.env.S3_BUCKET!, Key: key, ContentType: contentType,
}), { expiresIn: 3600 });Same project, same .env, same bill.
Postgres, auth, storage, Redis, email and AI models. One API key.