Skip to content

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

  1. Open your project and click Add Service
  2. Search for or select Object Storage
  3. 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:

VariableDescriptionExample
S3_ENDPOINTScaleway S3 endpointhttps://s3.nl-ams.scw.cloud
S3_ACCESS_KEYIAM access keySCW...
S3_SECRET_KEYIAM secret key...
S3_BUCKETService-specific bucket namesp-myorg-a1b2c3d4
S3_REGIONScaleway regionnl-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 file
await 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?