Erweiterter use-Parameter
Der Parameter use bietet erweiterte Optionen, mit denen Sie genauer steuern können, wie Eingaben verarbeitet werden.
Diese Funktionen sind besonders bei komplexen Szenarien hilfreich, etwa wenn Steps
Eingaben kombinieren oder bestimmten Verarbeitungsreihenfolgen folgen müssen.
Steps bündeln
Einige Robots können die Ergebnisse mehrerer Steps für einen einzelnen Aufruf zusammenfassen. Beispielsweise würde
🤖/file/compress normalerweise für jede übergebene Datei ein eigenes Archiv erstellen.
Wenn Sie jedoch bundle_steps auf true setzen, wird ein Archiv mit allen Ergebnisdateien aus sämtlichen übergebenen Steps erstellt.
Um die Bündelung zu aktivieren, übergeben Sie dem Parameter use ein Objekt wie das folgende:
"use": {
"steps": [
":original",
"encoded",
"resized"
],
"bundle_steps": true
}
Der Parameter bundle_steps ist für
🤖/video/adaptive unverzichtbar. Ohne ihn erstellen Sie für jede Wiedergabequalität
eine eigene Master-Playlist-Datei.
Nach Original gruppieren
Der Parameter group_by_original ordnet Ausgabedateien nach ihrer ursprünglichen Eingabedatei. Dies
ist besonders wichtig für Workflows, in denen Ausgaben mit der Eingabedatei gruppiert werden sollen,
die sie erzeugt hat, beispielsweise bei Verwendung von 🤖/file/compress,
dem Robot. In diesem Fall können Sie für jede hochgeladene oder
importierte Datei ein separates Archiv erstellen, anstatt eines Archivs mit allen ursprünglichen Uploads
(oder eines Archivs pro Ergebnisdatei).
Beispiel:
"compress": {
"use": {
"steps": ["thumbnails"],
"bundle_steps": true,
"group_by_original": true
},
"robot": "/file/compress"
}
Diese Konfiguration gibt an, dass der Step compress die Ausgabe des
Steps thumbnails berücksichtigen, diese Ausgaben nach Originaldatei zusammenfassen und anschließend
entsprechend komprimieren soll.
Felder
Mit der Einstellung fields können Sie bestimmte Dateien anhand ihrer Feldnamen filtern und auswählen.
Wenn dieses Array angegeben ist, wird der entsprechende Step nur für Dateien ausgeführt,
die über einen der angegebenen Feldnamen übermittelt wurden.
Die Feldnamen müssen mit den Namen übereinstimmen, die den Datei-Eingabefeldern in Ihrem HTML-Formular
im Attribut name des Datei-Eingabe-Tags zugewiesen wurden. Bei Verwendung eines Backend-SDK entspricht dies
myFieldName1, zum Beispiel in: $transloadit->addFile('myFieldName1', './chameleon.jpg').
Beispiel:
"use": {
"steps": [":original"],
"fields": ["myFieldName1"]
}
Dieser Parameter ist standardmäßig auf true gesetzt. Das bedeutet, dass alle Felder akzeptiert werden.
as verwenden
Manche Robots verarbeiten mehrere Eingaben. Beispielsweise kann 🤖/video/merge aus Audio und Bildern eine Diashow erstellen. Sie können verschiedene Steps den passenden Eingaben zuordnen, indem Sie den Dateityp angeben, als der der jeweilige Step behandelt werden soll.
"use": {
"steps": [
{ "name": "audio_encoded", "as": "audio" },
{ "name": "images_resized", "as": "image" }
]
}
Reihenfolge der Steps
Manchmal ist die Reihenfolge wichtig. Bei unserer Familie von Robots zum Verketten
möchten Sie beispielsweise möglicherweise eine genaue Reihenfolge festlegen, in der Ihre Medien zusammengefügt werden. In diesen
Fällen können Sie am Ende des Dateityps einen Index hinzufügen, beginnend mit 1. Optional können Sie auch
nach dem Namen des Multipart-Felds filtern. Wie in diesem Beispiel, bei dem alle Dateien aus derselben
Quelle stammen (Uploads von Endnutzern), aber unterschiedliche <input>-Namen haben:
"use": {
"steps": [
{ "name": ":original", "fields": "myFirstVideo", "as": "video_1" },
{ "name": ":original", "fields": "mySecondVideo", "as": "video_2" },
{ "name": ":original", "fields": "myThirdVideo", "as": "video_3" }
]
}
Wenn nicht eindeutig ist, wo die Datei eingesetzt werden soll, können Sie dies mit Assembly Variables
genau festlegen. Beispielsweise möchten Sie möglicherweise eine Textdatei an
🤖/image/resize übergeben, um den Text in ein Bild einzubrennen. Doch wenn
Sie mehrere Wasserzeichen in das Bild einbrennen, wie verweisen Sie dann auf die gewünschte Textdatei?
Mit ${use.text_1} können Sie angeben, dass die erste übergebene Textdatei verwendet werden soll.
Beispiel:
"watermarked": {
"robot": "/image/resize",
"use": {
"steps": [
{ "name": "resized", "as": "base" },
{ "name": "transcribed", "as": "text" }
]
},
"text": [
{
"text": "Hi there",
"valign": "top",
"align": "left"
},
{
"text": "From the 'transcribed' Step: ${use.text_1}",
"valign": "bottom",
"align": "right",
"x_offset": 16,
"y_offset": -10
}
]
}
Wasserzeichen über einen Assembly Step bereitstellen
Sie können sowohl die Basisbilddatei als auch das Wasserzeichenbild über den Parameter use an einen Assembly Step
übergeben. So können beide Teil des Uploads sein, oder Sie verwenden die Ergebnisse anderer
Assembly Steps als Eingabe für den
🤖/image/resize-Step.
Dazu müssen Sie lediglich die as-Syntax verwenden:
"my_image_step": {
"robot": "/image/resize",
"use": {
"steps": [
{ "name": ":original", "as": "base" },
{ "name": "watermark_step", "as": "watermark" }
]
}
}
Hier wird die Ausgabe eines watermark_step-Steps als Wasserzeichen verwendet, während das Basisbild
aus den hochgeladenen Dateien stammt.
Wenn Sie mehrere Datei-Eingabefelder verwenden, können Sie Transloadit mitteilen, welches Feld das Basisbild
und welches das Wasserzeichen bereitstellt. Angenommen, Sie haben zwei Datei-Eingabefelder namens the_image und
the_watermark. Mit diesen Assembly Instructions funktioniert dies über die Bedingung fields:
"my_image_step": {
"robot": "/image/resize",
"use": {
"steps": [
{ "name": ":original", "fields": "the_image", "as": "base" },
{ "name": ":original", "fields": "the_watermark", "as": "watermark" }
]
}
}
Beachten Sie, dass der Parameter watermark_url des Robots weiterhin funktioniert.