Build with
your own tools.
A native CLI, a small SDK and the S3 API.
A small SDK. A clear API.
Install the SIS3 JavaScript SDK in your server application. Keep credentials on the server; never bundle secret keys into browser code.
npm install @sis3/sdk
Give every object a key.
Use a bucket for your project and a stable object key for each file. Environment variables supply the account credentials.
import { SIS3 } from '@sis3/sdk';
import { readFile } from 'node:fs/promises';
const storage = new SIS3({
endpoint: 'https://s3.sis3.si',
accessKeyId: process.env.SIS3_ACCESS_KEY_ID,
secretAccessKey: process.env.SIS3_SECRET_ACCESS_KEY,
});
await storage.objects.put({
bucket: 'my-project',
key: 'images/original.jpg',
body: await readFile('./original.jpg'),
contentType: 'image/jpeg',
});
Handle the edges.
For 429 and transient 5xx responses, retry with bounded exponential backoff. Do not retry an authentication error unchanged. Log request IDs and operation names; redact keys, tokens and private object paths.