Amazon S3 + Transloadit
Objekte aus Amazon S3 importieren, in einer Assembly verarbeiten und die Ergebnisse zurückschreiben, ohne die Dateien über Ihren Anwendungsserver zu leiten.
Ausführbare Anleitung
Integration aufbauen
Dieses Template importiert ein JPEG, skaliert es so, dass es in 1200×1200 passt, und speichert das Ergebnis unter processed/.
- Erstellen Sie einen S3-Bucket und einen IAM-Principal mit minimalen Rechten für diesen Bucket.
- Speichern Sie die AWS-Werte in Transloadit als Template-Zugangsdaten mit dem Namen my_s3_credentials.
- Fügen Sie die Instructions in ein Template ein und starten Sie eine Assembly mit diesem Template.
Instructions des Templates
{
"steps": {
"imported": {
"robot": "/s3/import",
"credentials": "my_s3_credentials",
"path": "incoming/photo.jpg"
},
"resized": {
"robot": "/image/resize",
"use": "imported",
"width": 1200,
"height": 1200,
"resize_strategy": "fit"
},
"exported": {
"robot": "/s3/store",
"use": "resized",
"credentials": "my_s3_credentials",
"acl": "bucket-default",
"path": "processed/${file.url_name}"
}
}
}Authentifizierung
- Erstellen Sie einen dedizierten IAM-Principal und speichern Sie Bucket, Zugriffsschlüssel-ID, geheimen Zugriffsschlüssel und Bucket-Region dieses Principals in Transloadit als Template-Zugangsdaten.
- Gewähren Sie nur die Bucket- und Objektaktionen, die die Steps für Import und Speichern benötigen. Die Robot-Dokumentation enthält Ausgangsrichtlinien für jede Richtung.
- Halten Sie das AWS-Secret aus Assembly Instructions und Anwendungscode heraus, indem Sie auf den Namen der gespeicherten Zugangsdaten verweisen.
Einschränkungen und Hinweise zum Betrieb
- Verzeichnisimporte können viele Dateien liefern und eine Paginierung erfordern; verwenden Sie für planbare Batches ein enges Pfadpräfix.
- Serverseitige Verschlüsselung mit AWS KMS erfordert zusätzliche KMS-Berechtigungen über den gewöhnlichen Zugriff auf S3-Objekte hinaus.
- Einstellungen zur Objekteigentümerschaft und Bucket-Richtlinien können ACL-Schreibvorgänge ablehnen. Das Rezept verwendet bucket-default, sodass PutObjectAcl nicht erforderlich ist.
Weitere Integrationen
Bauen Sie Ihren Stack weiter aus
Cloudflare R2
R2-Objekte mit eigenen Robots zum Importieren und Speichern verarbeiten.
Supabase
Verbinden Sie Supabase Storage über den S3-kompatiblen Endpunkt.
Tigris
Importieren und exportieren Sie Tigris-Objekte mit vollwertigen Robots.
Azure Blob Storage
Verbinden Sie Container aus Azure Blob Storage mit Assembly-Pipelines.