Comment configurer un bucket S3 pour l’utiliser avec Transloadit
Utiliser Amazon S3 avec Transloadit peut constituer une combinaison puissante, mais plusieurs clients nous ont dit qu’il pouvait être difficile d’obtenir un fonctionnement exactement conforme à leurs attentes. Pour les aider, et nous l’espérons d’autres aussi, nous avons décidé de rédiger un guide complet sur l’intégration de ces deux services.

Création d’un bucket
Naturellement, la première étape consiste à créer un compte AWS. Si vous n’en avez pas encore, rendez-vous sur leur page d’inscription et suivez les instructions indiquées.
Ensuite, accédez à Storage, puis sélectionnez S3 dans l’onglet Services, comme illustré ci-dessous.

Depuis la Management Console, cliquez sur Create Bucket. Donnez un nom au bucket et choisissez la région la plus proche de la majorité de vos utilisateurs. Notez le nom et la région, car nous devrons transmettre ces informations à Transloadit plus tard.
Conservez l’option Bucket owner enforced sous Object Ownership, avec les ACL désactivées, et laissez l’option Block all
public access activée. Transloadit peut stocker des fichiers dans ce bucket privé en omettant les ACL d’objet ;
notre Template ci-dessous définit acl sur "bucket-default" à cette fin. Vous n’avez pas besoin de rendre le
bucket public pour importer ou exporter des fichiers. Consultez
les recommandations d’AWS sur Object Ownership.
Configuration des informations d’identification Transloadit
Notre bucket est maintenant configuré et prêt à stocker nos fichiers ! Cependant, nous devons encore récupérer des informations d’identification auprès d’AWS avant de passer à Transloadit pour configurer notre Template.
Utilisez un utilisateur IAM dédié à cette intégration, et non votre
utilisateur root AWS. Dans IAM, attribuez à cet
utilisateur une stratégie d’identité limitée à votre bucket. Cet exemple, limité à l’export, permet de
lister le bucket, de découvrir sa région et d’écrire des objets. Remplacez YOUR_BUCKET_NAME dans les deux ressources :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetBucketLocation", "s3:ListBucket"],
"Resource": "arn:aws:s3:::YOUR_BUCKET_NAME"
},
{
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
}
]
}
Il s’agit d’une stratégie d’identité IAM attachée à cet utilisateur, et non d’une stratégie de bucket
accordant un accès public. Si vous devez également importer des objets, ajoutez s3:GetObject uniquement pour les
chemins d’objets que vous devez lire. Le chiffrement KMS géré par le client peut nécessiter des
autorisations supplémentaires propres à la clé ; n’accordez pas d’accès administratif avec caractères
génériques pour résoudre les erreurs d’autorisation.
Ouvrez les informations d’identification de sécurité de l’utilisateur IAM dédié et créez une clé d’accès pour cette intégration. Stockez la clé et le secret en lieu sûr, renouvelez-les conformément à la politique de votre organisation et ne les placez jamais dans du code exécuté dans le navigateur ni dans un dépôt de code source.
Les captures d’écran de la Console ci-dessous montrent l’interface en anglais.
Rendez-vous maintenant sur la page Informations d’identification de Transloadit Console. Ouvrez Informations d’identification tierces, puis cliquez sur Ajouter un nouvel ensemble d’informations d’identification.

Sélectionnez Amazon S3 comme service, donnez à l’ensemble d’informations d’identification un nom facile à retenir, puis indiquez le nom du bucket et la région notés précédemment. Veillez également à ajouter ici votre clé d’accès et votre secret.

Création d’un Template
Transloadit dispose désormais des informations d’identification nécessaires pour exporter des fichiers vers ce bucket. Mettons tout cela à l’épreuve !
Le Template ci-dessous redimensionnera une image téléversée en 200x200 avec la stratégie fillcrop
– grâce à notre pratique Robot /image/resize.
Ensuite, le fichier redimensionné et le fichier original seront tous deux envoyés vers S3 pour y être stockés de façon permanente.
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"fillcropped": {
"use": ":original",
"robot": "/image/resize",
"result": true,
"height": 200,
"width": 200,
"imagemagick_stack": "v3.0.1",
"resize_strategy": "fillcrop"
},
"exported": {
"use": ["fillcropped", ":original"],
"robot": "/s3/store",
"credentials": "MY_S3_CREDENTIALS",
"acl": "bucket-default"
}
}
}
Remplacez MY_S3_CREDENTIALS par le nom que vous avez enregistré dans Transloadit. Après une Assembly réussie,
vérifiez les deux objets dans la console S3 à l’aide d’une identité disposant d’un accès en lecture.
Les objets stockés restent privés : une URL de résultat ne suffit pas, à elle seule, à accorder
l’autorisation de les télécharger. Pour partager des fichiers privés, utilisez un accès authentifié ou
des URL signées de courte durée configurées délibérément.
Ce guide touche à sa fin. Nous savons que S3 peut être délicat à configurer : si vous rencontrez encore des difficultés, n’hésitez pas à nous le faire savoir et nous serons ravis de vous aider.
