ObjectBasin

SDK и инструменты

Подходит всё, что умеет S3. Ниже клиенты, с которыми мы тестируем каждый релиз.

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 и Rust

Официальные SDK работают с любым адресом API и адресацией по пути: включите UsePathStyle (Go) или force_path_style (Rust) и отключите трейлер x-amz-checksum-*, если ваша сборка старше 2024 года.

Совместимость

ВозможностьСтатус
Подпись SigV4Поддерживается
Multipart-загрузкаПоддерживается (до 10 000 частей)
Range-запросыПоддерживаются, включая множественные
Политики бакетовПоддерживаются (JSON, синтаксис S3)
Object lock / WORMПока нет — в плане на I квартал
S3 Select, архивные классыНе поддерживаются осознанно