Amazon S3 + Transloadit
Importer des objets depuis Amazon S3, les traiter dans une Assembly et y réécrire les résultats sans faire transiter les fichiers par votre serveur d’application.
Recette exécutable
Mettre en place l’intégration
Ce Template importe une image JPEG, la redimensionne pour qu’elle tienne dans 1200×1200 et stocke le résultat sous processed/.
- Créez un bucket S3 et un principal IAM à privilèges minimaux pour ce bucket.
- Enregistrez les valeurs AWS dans Transloadit sous forme d’un ensemble d’informations d’identification de Template nommé my_s3_credentials.
- Collez les Instructions dans un Template et lancez une Assembly à partir de ce Template.
Instructions du Template
{
"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}"
}
}
}Authentification
- Créez un principal IAM dédié et enregistrez son bucket, son ID de clé d’accès, sa clé d’accès secrète et la région du bucket en tant qu’informations d’identification de Template Transloadit.
- N’accordez que les actions sur le bucket et les objets nécessaires aux Steps d’importation et de stockage. La documentation des Robots contient des politiques de départ pour chaque sens.
- Tenez le secret AWS à l’écart des Assembly Instructions et du code de l’application en faisant référence au nom de l’ensemble d’informations d’identification enregistré.
Limitations et notes opérationnelles
- Les importations de répertoires peuvent renvoyer de nombreux fichiers et nécessiter une pagination ; utilisez un préfixe de chemin restreint pour obtenir des lots prévisibles.
- Le chiffrement côté serveur avec AWS KMS nécessite des autorisations KMS supplémentaires, au-delà de l’accès ordinaire aux objets S3.
- La propriété des objets et les politiques de bucket peuvent rejeter les écritures d’ACL. La recette utilise bucket-default afin que PutObjectAcl ne soit pas nécessaire.
Autres intégrations
Continuez à développer votre stack
Cloudflare R2
Traiter des objets R2 avec des Robots dédiés à l’importation et au stockage.
Supabase
Connecter Supabase Storage via son point de terminaison compatible S3.
Tigris
Importer et exporter des objets Tigris avec des Robots natifs.
Azure Blob Storage
Connecter des conteneurs Azure Blob Storage aux pipelines d’Assemblies.