Ruby + Transloadit
Erstellen Sie aus einem Ruby-Prozess heraus eine signierte Assembly mit dem offiziellen Gem transloadit und einem festen Template.
Ausführbare Anleitung
Integration aufbauen
Das Skript übermittelt eine lokale Datei an ein festes Template, fragt den Status mit einer festen Obergrenze ab und gibt die finale Antwort aus.
- Installieren Sie das Gem transloadit und erstellen Sie ein Transloadit-Template.
- Setzen Sie TRANSLOADIT_KEY, TRANSLOADIT_SECRET und TRANSLOADIT_TEMPLATE_ID.
- Führen Sie ruby process_media.rb path/to/file.mp4 aus.
Installieren
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 responseAuthentifizierung
- Der Auth Key und das Auth Secret aus dem Workspace sowie die feste Template ID werden aus Umgebungsvariablen des Servers gelesen.
- Das offizielle Ruby-Gem signiert API-Anfragen, wenn es mit dem Auth Secret initialisiert wird.
- Halten Sie Zugangsdaten aus Ruby-Umgebungen fern, die an den Browser ausgeliefert werden, und verhindern Sie, dass nicht vertrauenswürdige Aufrufer beliebige Steps auswählen.
Einschränkungen und Hinweise zum Betrieb
- create! kehrt zurück, sobald die Assembly erstellt und der Upload angenommen wurde, nicht unbedingt erst nach Abschluss der Verarbeitung.
- reload_until_finished! fragt den Status wiederholt ab. Hintergrundjobs sollten einen endlichen Wert für tries setzen und die Assembly ID für einen späteren Abgleich speichern.
- Verwenden Sie für Browser-Uploads in einer Rails-Anwendung Uppy oder das Rails-SDK, statt große Dateien über einen Controller weiterzuleiten.
Weitere Integrationen