Découverte du Robot /google/store dans la série Re-Loadit
Cet article de blog est le quatrième volet de la série que nous avons baptisée Re-loadit. Dans cette série, nous présentons plusieurs fonctionnalités de Transloadit qui n’ont pas encore été présentées comme il se doit à nos utilisateurs.
Comme pour nos autres présentations de Robot, nous vous donnerons quelques exemples, expliquerons les fonctionnalités clés du Robot et vous proposerons quelques conseils pour bien démarrer. Nous espérons que vous prendrez plaisir à découvrir comment tirer parti de l’étendue des fonctionnalités de Transloadit.
Le Robot /google/store
Au cours des dernières années, les développeurs ont progressivement délaissé les systèmes locaux au profit du cloud pour stocker leurs données. Une raison importante de passer au cloud est une meilleure protection de vos données, en particulier en cas de catastrophe naturelle. Certains rapports l’ont confirmé et prévoient que le marché du stockage cloud atteindra 88,91 milliards $ d’ici 2022, soit un taux de croissance annuel énorme de 23,7 %. Des milliards de personnes et des milliers d’entreprises optent pour le stockage en ligne, car il est confortable, pratique, sécurisé et économique. Google Cloud Storage est l’un des services de stockage cloud les plus populaires.
Nous voulons que nos utilisateurs aient la liberté d’intégrer ce service directement dans leurs Templates Transloadit.
C’est pourquoi nous avons lancé le Robot /google/store, qui fait partie de la famille des Robots Transloadit depuis début 2018.

Que peut-il faire ?
Le Robot /google/store exporte tous les résultats d’encodage de votre Assembly vers un bucket Google Storage de votre choix.
Vous pourriez par exemple laisser vos utilisateurs envoyer une vidéo, puis utiliser le Robot /video/thumbs (English) pour générer des miniatures de la vidéo, avant d’exporter ces miniatures vers Google Cloud Storage, le tout dans une seule Assembly.
Voyons étape par étape comment créer une telle Assembly !
Création de l’Assembly
Avant de commencer à créer notre Assembly, nous devons obtenir le fichier JSON du compte de service. Il est nécessaire pour que nos Assemblies puissent utiliser l’API Google Cloud. Pour générer votre fichier JSON, rendez-vous dans la section des comptes de service de la Google Cloud Console afin de créer un nouveau compte de service. Après avoir attribué un rôle au nouveau compte de service, cliquez, à la dernière étape, sur Create key, puis sélectionnez JSON comme type (la clé sera téléchargée automatiquement).
Nous vous recommandons vivement d’enregistrer votre jeton d’accès dans les informations d’identification de Template de Transloadit. Pour cela, sélectionnez d’abord Google Storage comme type d’informations d’identification, puis renseignez l’ID de votre projet Google et le nom du bucket, ainsi que le fichier JSON téléchargé précédemment.
Votre clé d’accès reste ainsi chiffrée dans notre base de données, ce qui aide à empêcher des utilisateurs malveillants d’y accéder. Comme vous pouvez le voir dans la capture d’écran ci-dessous, j’ai nommé mon jeu d’informations d’identification Google my_google_cred. Nous aurons besoin de ce nom plus tard, lorsque nous commencerons à créer notre Assembly.

Voici les Assembly Instructions que j’ai utilisées après avoir correctement configuré mes informations d’identification de Template :
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"thumbnailed": {
"use": [":original"],
"robot": "/video/thumbs",
"result": true,
"count": 1,
"ffmpeg_stack": "v7"
},
"exported": {
"use": ["thumbnailed"],
"robot": "/google/store",
"credentials": "my_google_cred",
"path": "screenshots/${file.original_basename}.${file.ext}"
}
}
}
Dans les deux premiers Steps, le Robot /upload/handle envoie un fichier vidéo vers Transloadit, puis le Robot /video/thumbs (English) réalise des captures d’écran de la vidéo.
Dans le Step suivant, les captures d’écran sont transmises au
Robot /google/store. Le paramètre credentials
donne accès au jeu d’informations d’identification Google Storage, que j’ai enregistré dans mes
informations d’identification de Template sous le nom my_google_cred. Le paramètre
path enregistre ensuite les images exportées dans un dossier nommé
screenshots de mon espace Google Storage et nomme chaque fichier d’après son nom
d’origine. Si vous craignez des collisions, vous pourriez ajouter à ce chemin des
Assembly Variables supplémentaires, comme
un hachage MD5 (${file.md5hash}) ou le ${unique_prefix}.
Pour tester ces Assembly Instructions, exécutez le code Node.js suivant sur votre serveur, en lui passant en argument le chemin d’un fichier vidéo local.
const { Transloadit } = require('transloadit')
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_AUTH_SECRET,
})
const options = {
files: { video: process.argv[2] },
params: {
steps: {
':original': {
robot: '/upload/handle',
},
thumbnailed: {
use: [':original'],
robot: '/video/thumbs',
result: true,
ffmpeg_stack: 'v7',
count: 1,
},
exported: {
use: ['thumbnailed'],
robot: '/google/store',
credentials: 'my_google_cred',
path: 'screenshots/${file.original_basename}.${file.ext}',
},
},
},
}
transloadit.createAssembly(options)
.then((result) => console.log({ result }))
.catch((error) => {
console.error(error)
process.exitCode = 1
})
Les résultats
Notre Assembly semble fonctionner parfaitement ! Après l’exécution du code Node.js ci-dessus, une image portant le même nom que mon fichier vidéo apparaît dans mon dossier screenshots.

Nous espérons que cet article vous a permis de mieux comprendre ce que le Robot /google/store peut faire pour vous et comment le mettre en œuvre.
Rendez-vous dans le prochain article de notre série Re-loadit !
