Re-Loadit: Uploads mit dem /upload/handle Robot vereinfachen
Dieser Blogbeitrag ist der dritte Teil der Serie, die wir Re-loadit nennen. In diesen Blogbeiträgen behandeln wir einige Funktionen von Transloadit, die unseren Nutzerinnen und Nutzern noch nicht richtig vorgestellt wurden.
Wie bei anderen Robot-Vorstellungen zeigen wir Ihnen einige Beispiele, erklären, welche zentralen Aufgaben der Robot übernimmt, und bieten einige Tipps für den Einstieg. Wir hoffen, es macht Ihnen Freude, mehr darüber zu erfahren, wie Sie die vielfältigen Funktionen von Transloadit nutzen können.
Der /upload/handle Robot
Eine der vielen Möglichkeiten, Transloadit eine Datei zum Transkodieren zu übergeben, ist der /upload/handle Robot. Dieser Robot verarbeitet Uploads einzelner wie auch mehrerer Dateien problemlos. Er ist die mit Abstand einfachste Methode, Dateien zu Transloadit hochzuladen, und lässt sich zusammen mit Ihren HTML-Formularen verwenden.
Sie müssen für Uploads mehrerer Dateien nicht mehrere Upload-Punkte definieren, denn der /upload/handle Robot kann dank unserer node-formidable-Bibliothek mehrere Uploads in einem Durchgang verarbeiten. Die Dateien bilden dabei unterschiedliche Felder in einem Multipart-Upload. Dieser Robot verarbeitet außerdem mühelos fortsetzbare Datei-Uploads mithilfe von tus, unserem ganz eigenen Open-Source-Protokoll für fortsetzbare Uploads, das auf dem besten Weg ist, zum Industriestandard zu werden.

Warum /upload/handle als Robot?
Nun, warum etwas selbst machen, wenn ein Robot es in einem Bruchteil der Zeit erledigen kann! 😎
Spaß beiseite: Der /upload/handle Robot gehört zwar erst seit Mai letzten Jahres zur Robot-Familie von Transloadit, seine Kernfunktionalität ist jedoch von Anfang an ein fester Bestandteil unseres Dienstes. Wie sich jedoch herausstellte, brauchten unsere Kundinnen und Kunden auch dringend eine Möglichkeit, Metadaten (und andere Optionen) für hochgeladene Dateien festzulegen – und nicht nur für Transcoding-Ergebnisse.
Und genau deshalb haben wir einen Robot für die Verarbeitung von Datei-Uploads entwickelt.
Wenn Sie nun wissen möchten, ob hochgeladene Dateien transparente Bereiche haben, müssen Sie
lediglich output_meta : {has_transparency: true} auf dem /upload/handle
Robot setzen, und meta.has_transparency wird automatisch für die Ergebnisse gesetzt.
Was kann er?
Anhand des Namens lässt sich seine Funktionsweise bereits erahnen. Der /upload/handle Robot lädt alle Dateien, die Sie benötigen, zu Transloadit hoch, damit sie für Encoding-Steps zur Verfügung stehen. Als Beispiel dafür, wie das funktioniert, zeige ich Ihnen, wie Sie beliebige Dateien importieren und im Dashboard von Transloadit überprüfen, ob sie erfolgreich hochgeladen wurden.
Wir laden Dateien über eine Assembly zu Transloadit hoch und melden uns anschließend in unserem Transloadit-Dashboard an, um zu überprüfen, ob die Dateien sicher angekommen sind.
Die Assembly erstellen
Dies sind die Assembly Instructions, die ich verwendet habe:
{
"steps": {
":original": {
"robot": "/upload/handle"
}
}
}
Was passiert also im obigen Code? Wir haben Assembly Instruction definiert, die Transloadit anweisen, die hochgeladenen Dateien zu verarbeiten. Da wir keine weiteren Steps hinzugefügt haben, bedeutet das, dass Transloadit diese Dateien nicht weiterverarbeitet.
Um diese Assembly Instructions auszuprobieren, führen Sie den folgenden Node.js-Code
auf Ihrem Server aus und ersetzen Sie PATH_TO_LOCAL_VIDEO_FILE durch den Pfad zu Ihrer Datei.
const { Transloadit } = require('transloadit')
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_AUTH_SECRET,
})
const options = {
files: { file_1: 'PATH_TO_LOCAL_VIDEO_FILE' },
params: {
steps: {
':original': {
robot: '/upload/handle',
},
},
},
}
transloadit.createAssembly(options)
.then((result) => console.log({ result }))
.catch((error) => {
console.error(error)
process.exitCode = 1
})
Nachdem Sie den Code getestet haben, melden Sie sich in Ihrem Dashboard an, klicken Sie in der Seitenleiste auf Assemblies, klicken Sie dann auf die erste Assembly, die Sie sehen, und Sie sollten ein Ergebnis wie dieses erhalten:

Beachten Sie, dass Ihre Datei im Bereich der hochgeladenen Dateien aufgeführt wird.
Test mit mehreren Dateien
Wir könnten Uploads mehrerer Dateien zwar genauso testen wie bei der einzelnen Datei, ich halte es aber für sinnvoller, ein anderes Beispiel zu verwenden, das zeigt, wie sich mehrere Dateien in einem realistischeren Szenario hochladen lassen. In diesem Beispiel brennen wir mit dem /upload/handle Robot und dem /video/subtitle Robot einen Untertitel in eine Videodatei ein. Werfen Sie einen Blick auf die Assembly Instruction:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"subtitled": {
"robot": "/video/subtitle",
"preset": "ipad-high",
"use": {
"steps": [
{ "name": ":original", "fields": "video", "as": "video" },
{ "name": ":original", "fields": "subtitle", "as": "subtitles" }
]
}
}
}
}
Im obigen Codeblock haben wir mit dem /upload/handle
Robot zwei verschiedene Dateien importiert und anschließend einen Step namens
subtitled deklariert, in dem wir festgelegt haben, welche der hochgeladenen
Dateien das Video und welche die Untertiteldatei ist, also beim
/video/subtitle Robot der Parameter use.
Beachten Sie, dass „fields“ in Filtern mit
useaus den Eingabefeldern neben dem Attribut „name“ bestehen. Mit anderen Worten: aus dem Namen, den Sie Ihrer Datei beim Hochladen geben.
Sie können diese Assembly Instructions auch ausprobieren, indem Sie den folgenden Node.js-Code auf Ihrem Server ausführen und dabei die beiden lokalen Dateipfade ersetzen:
const { Transloadit } = require('transloadit')
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_AUTH_SECRET,
})
const options = {
files: {
video: 'PATH_TO_LOCAL_VIDEO_FILE',
subtitle: 'PATH_TO_LOCAL_SUBTITLE_FILE',
},
params: {
steps: {
':original': {
robot: '/upload/handle',
},
subtitled: {
robot: '/video/subtitle',
preset: 'ipad-high',
use: {
steps: [
{ name: ':original', fields: 'video', as: 'video' },
{ name: ':original', fields: 'subtitle', as: 'subtitles' },
],
},
},
},
},
}
transloadit.createAssembly(options)
.then((result) => console.log({ result }))
.catch((error) => {
console.error(error)
process.exitCode = 1
})
Die Ergebnisse
Als ich die Assembly in meinem Transloadit-Dashboard prüfe, stelle ich fest:
-
Beim Upload einer einzelnen Datei wurde meine Datei erfolgreich zu Transloadit hochgeladen. Es wurde kein weiteres Encoding auf die Datei angewendet, genau wie in den Assembly Instructions angegeben
-
Beim Upload mehrerer Dateien wurden meine Dateien erfolgreich hochgeladen und die Untertiteldatei wurde in mein Video eingebrannt.
Ich hoffe, dieser Beitrag hat gezeigt, wie leistungsfähig und unverzichtbar der /upload/handle Robot ist und wie einfach sich mehrere Dateien abrufen lassen, die mit diesem Robot hochgeladen wurden.
Im nächsten Teil der Re-loadit-Serie sprechen wir über unseren /google/store Robot. Bleiben Sie also dran!
