Dynamische Auswertung
Wenn Platzhaltervariablen wie ${file.meta.width} nicht ausreichen, um Ihre Anwendungslogik zu
implementieren, können Sie auch den gesamten Funktionsumfang von modernem JavaScript nutzen, um
dynamische Anweisungen für die Assembly zu erstellen. Diese
Skripte werden auf unserer Infrastruktur ausgeführt und können auf alle
Assembly Variables zugreifen. Dazu gehören
die Metadaten einer Datei, die Transloadit automatisch ermittelt, grundlegende Informationen zur
Laufzeit der Assembly sowie
Felder, die Sie als Entwickler beim Erstellen der Assembly ausfüllen können.
Beispielsweise können Sie die Größe von Bildern anpassen, damit sie dem Gestaltungsprinzip des Goldenen Schnitts entsprechen:
{
"robot": "/image/resize",
"height": "${file.meta.width / (1 + Math.sqrt(5))/2}",
"resize_strategy": "crop"
}
Oder Sie können den Namen der Ausgabedatei beim Upload zu S3 in Großbuchstaben umwandeln:
{
"robot": "/s3/store",
"path": "my-folder/${file.name.toUpperCase()}"
}
Alles innerhalb von ${...} wird ausgewertet. Dabei stehen Ihnen sämtliche Sprachfunktionen von
JavaScript zur Verfügung, solange Ihr Skript keine asynchronen Operationen ausführt. Sie können
beispielsweise Methoden von Math,
Date oder
String
verwenden.
Variablenabfrage
Die dynamische Auswertung ist kostenlos, wenn es sich um eine einfache Abfrage wie ${file.name}
oder ${file.meta.faces[0]} handelt.
Komplexere Auswertungen wie ${Math.max(10, file.meta.width)} sind kostenpflichtig. Das liegt daran,
dass wir 🤖/script/run aufrufen, um JavaScript zu interpretieren. Dadurch
beanspruchen die Auswertungen unsere Systeme stärker und dauern einige Millisekunden länger. Dafür
steht Ihnen eine vollständige Programmiersprache zur Verfügung, die deutlich mehr Möglichkeiten
bietet.