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.