Object Storage
Stackpad provides S3-compatible object storage for files, user uploads, assets, and backups — all hosted on European infrastructure (Scaleway, Amsterdam). Credentials are automatically shared with your other services.
Adding object storage
- Open your project and click Add Service
- Search for or select Object Storage
- Click Add
Stackpad provisions a dedicated bucket and injects credentials into all sibling services in the same project.
Auto-injected environment variables
When you add object storage, these variables are automatically available in your web services:
| Variable | Description | Example |
|---|---|---|
S3_ENDPOINT | Scaleway S3 endpoint | https://s3.nl-ams.scw.cloud |
S3_ACCESS_KEY | IAM access key | SCW... |
S3_SECRET_KEY | IAM secret key | ... |
S3_BUCKET | Service-specific bucket name | sp-myorg-a1b2c3d4 |
S3_REGION | Scaleway region | nl-ams |
Using from your application
Object storage uses the standard S3 API, so any S3-compatible client works:
AWS SDK (JavaScript)
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';
const s3 = new S3Client({ endpoint: process.env.S3_ENDPOINT, region: process.env.S3_REGION, credentials: { accessKeyId: process.env.S3_ACCESS_KEY!, secretAccessKey: process.env.S3_SECRET_KEY!, }, forcePathStyle: true,});
// Upload a fileawait s3.send(new PutObjectCommand({ Bucket: process.env.S3_BUCKET, Key: 'uploads/avatar.png', Body: fileBuffer, ContentType: 'image/png',}));MinIO client
import { Client } from 'minio';
const minio = new Client({ endPoint: 's3.nl-ams.scw.cloud', useSSL: true, accessKey: process.env.S3_ACCESS_KEY!, secretKey: process.env.S3_SECRET_KEY!,});
await minio.putObject(process.env.S3_BUCKET!, 'uploads/file.pdf', fileBuffer);Shared credentials
Object storage credentials are per organisation. All services across all projects in the same organisation share the same S3 access keys. Each service gets its own bucket (named sp-{orgSlug}-{serviceId}), but can access other buckets in the organisation if needed.
Infrastructure
Object storage is hosted on Scaleway infrastructure in Amsterdam (nl-ams region). Your files stay in Europe, compliant with GDPR requirements.
What’s next?
- Connecting services — how auto-injected variables work
- Environment variables — manage and override S3 credentials
- Persistent storage — block storage for container file systems