ObjectBasin

SDKs & tools

Anything that speaks S3 works. These are the clients we test against on every release.

AWS CLI

aws configure set default.s3.signature_version s3v4
aws s3 mb s3://media --endpoint-url https://api.objectbasin.com
aws s3 sync ./assets s3://media/2026 --endpoint-url https://api.objectbasin.com

Python (boto3)

import boto3
s3 = boto3.client("s3", endpoint_url="https://api.objectbasin.com",
                  aws_access_key_id=KEY, aws_secret_access_key=SECRET)
s3.upload_file("hero.jpg", "media", "2026/hero.jpg",
               ExtraArgs={"ContentType": "image/jpeg"})

Node.js

import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
const s3 = new S3Client({ endpoint: "https://api.objectbasin.com", region: "eu-central-1" });
await s3.send(new PutObjectCommand({ Bucket: "media", Key: "2026/hero.jpg", Body: buf }));

rclone

rclone config create objb s3 provider Other \
  endpoint https://api.objectbasin.com \
  access_key_id $KEY secret_access_key $SECRET
rclone check ./assets objb:media/2026 --checksum

Go and Rust

The AWS SDKs for Go and Rust work with a custom endpoint and path-style addressing. Set UsePathStyle (Go) or force_path_style (Rust) and disable the x-amz-checksum-* trailer if your build predates 2024.

Compatibility notes

FeatureStatus
SigV4 signingSupported
Multipart uploadSupported (up to 10 000 parts)
Range requestsSupported, including multi-range
Bucket policiesSupported (JSON, S3 syntax)
Object lock / WORMNot yet — on the roadmap for Q1
S3 Select, Glacier tiersNot supported by design