Docs

SDKs

chili spricht die S3-API, daher nutzen Sie die offiziellen AWS-SDKs und setzen lediglich den Endpoint. Pfad-Style-Adressierung (forcePathStyle) wird empfohlen.

Python (boto3)

import boto3
 
s3 = boto3.client(
    "s3",
    endpoint_url="https://<ENDPOINT>",
    aws_access_key_id="AKIA...",
    aws_secret_access_key="...",
)
 
s3.put_object(Bucket="mein-bucket", Key="backup.tar", Body=open("backup.tar", "rb"))

Node.js (AWS SDK v3)

import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';
 
const s3 = new S3Client({
  endpoint: 'https://<ENDPOINT>',
  region: 'ch-east',
  credentials: { accessKeyId: 'AKIA...', secretAccessKey: '...' },
  forcePathStyle: true,
});
 
await s3.send(new PutObjectCommand({ Bucket: 'mein-bucket', Key: 'backup.tar', Body: data }));

Go (aws-sdk-go-v2)

cfg, _ := config.LoadDefaultConfig(context.TODO(),
    config.WithRegion("ch-east"),
)
client := s3.NewFromConfig(cfg, func(o *s3.Options) {
    o.BaseEndpoint = aws.String("https://<ENDPOINT>")
    o.UsePathStyle = true
})

Der Regions-Bezeichner (ch-east / ch-west) wird mit der Plattform final festgelegt; die meisten SDKs verlangen lediglich einen nicht-leeren Wert.