Ruby + Transloadit
Créer une Assembly signée depuis un processus Ruby avec le gem officiel transloadit et un Template fixe.
Recette exécutable
Mettre en place l’intégration
Le script envoie un fichier local à un Template fixe, interroge l’état un nombre limité de fois et affiche la réponse finale.
- Installez la gem transloadit et créez un Template Transloadit.
- Définissez TRANSLOADIT_KEY, TRANSLOADIT_SECRET et TRANSLOADIT_TEMPLATE_ID.
- Exécutez ruby process_media.rb path/to/file.mp4.
Installer
gem install transloaditprocess_media.rb
require 'transloadit'
transloadit = Transloadit.new(
key: ENV.fetch('TRANSLOADIT_KEY'),
secret: ENV.fetch('TRANSLOADIT_SECRET')
)
assembly = transloadit.assembly(
template_id: ENV.fetch('TRANSLOADIT_TEMPLATE_ID')
)
response = File.open(ARGV.fetch(0), 'rb') do |file|
assembly.create!(file)
end
response.reload_until_finished!(tries: 300)
puts responseAuthentification
- Lisez l’Auth Key et l’Auth Secret du Workspace, ainsi que l’ID du Template fixe, depuis les variables d’environnement du serveur.
- La gem Ruby officielle signe les requêtes d’API lorsqu’elle est initialisée avec l’Auth Secret.
- Gardez les informations d’identification hors des environnements Ruby livrés au navigateur et ne laissez pas des appelants non fiables sélectionner des Steps arbitraires.
Limitations et notes opérationnelles
- create! rend la main après la création de l’Assembly et l’acceptation du téléversement, pas nécessairement après la fin du traitement.
- reload_until_finished! interroge l’état périodiquement. Les tâches en arrière-plan doivent définir le paramètre tries sur une valeur finie et conserver l’identifiant d’Assembly pour une réconciliation ultérieure.
- Pour les téléversements depuis le navigateur dans une application Rails, utilisez Uppy ou le SDK Rails au lieu de faire transiter les fichiers volumineux par un contrôleur.
Autres intégrations