Zum Inhalt

Uploads mit S3 speichern

Applications konsumieren S3-kompatible Bindungen, ohne das Storage-Produkt im portablen Intent festzuschreiben.

Mit baha und konfiguriertem Runtime-Target:

baha app new media-api --stack go --http --s3
cd media-api
baha plan
baha up -e dev
baha app env --format json

Das Go-Scaffold bereitet AWS SDK und HeadBucket-Verifikation vor; es erzeugt keinen Upload-Endpunkt.

Bindung Zweck
S3_ENDPOINT, S3_BUCKET Endpunkt und Application-Bucket
AWS_REGION SDK-Region
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY Geschützte Application-Zugangsdaten
AWS_CA_BUNDLE TLS-Vertrauen

Im eigenen Handler mit s3Client, bucket, Request-Kontext ctx und io.Reader namens photo:

key := "products/mug-42/photo.jpg"
_, err := s3Client.PutObject(ctx, &s3.PutObjectInput{
    Bucket: &bucket,
    Key: &key,
    Body: photo,
})

SDK-Fehler behandeln, bevor der Objektschlüssel in Geschäftsdaten landet. Zugangsdaten bleiben in Bindungen; speichere Objektschlüssel statt credential-haltiger URLs. baha doctor prüft Storage, Uploads gehören in Backup/Restore.

Kanonische Anleitung (EN).