Rekursive Importe für S3 in Transloadit vorgestellt
Wir freuen uns, Ihnen eine Neuerung für unseren Robot /s3/import zu zeigen. Bisher haben wir keine Möglichkeit angeboten, Dateien rekursiv aus Ihren Amazon-S3-Buckets zu importieren, um sie in Transloadit zu verwenden. Normalerweise mussten Sie jeden Ordner einzeln in einem Assembly Step angeben – und das kann viel Arbeit bedeuten.
Bei Transloadit halten wir stets Ausschau nach Verbesserungen, die Ihnen Ihre Arbeit erleichtern. Mit rekursiven Importen für S3 lassen sich tief verschachtelte Ordner deutlich bequemer importieren – oder sogar ein ganzes S3-Bucket auf einmal!

Wie funktioniert das?
Sie können dem Robot wie bisher einen Parameter
path übergeben. Mit recursive: false (standardmäßig auf false
gesetzt, um die Abwärtskompatibilität nicht zu brechen) werden nur die Dateien importiert, die
direkt in dem durch diesen Pfad dargestellten Ordner liegen. Weitere Dateien in Unterordnern dieses
Pfads werden nicht einbezogen. Mit recursive: true würden diese Dateien ebenfalls
importiert.
Und wenn Sie path: '/', 'recursive': true angeben, können Sie jetzt
ein ganzes S3-Bucket importieren. Erstaunlich, oder?
Standardmäßig importiert der Robot tausend Dateien pro Aufruf. Es gibt jedoch Unterstützung für Pagination mit den Parametern
page_numberundfiles_per_page. Wenn Sie eine große Menge an Dateien importieren und den Robot mit Pagination verwenden, sollten Sie sicherstellen, dass in der Zwischenzeit keine Dateien zum importierten Pfad hinzugefügt werden. Andernfalls können durch die Pagination einige Dateien ausgelassen werden.
Das Template
{
"steps": {
"imported": {
"robot": "/s3/import",
"result": true,
"credentials": "s3_cred",
"path": "/",
"recursive": true
},
"resized": {
"use": ["imported"],
"robot": "/image/resize",
"result": true,
"height": 130,
"imagemagick_stack": "v2.0.3",
"width": 130,
"zoom": false
},
"exported": {
"use": ["imported", "resized"],
"robot": "/s3/store",
"credentials": "s3_cred",
"path": "${file.original_path}-resized@130/${file.basename}.${file.ext}"
}
}
}
Die Assembly Instructions oben zeigen eine typische Anweisung, um Dateien mit dem Robot /s3/import zu importieren und ihre Größe zu ändern. Beachten Sie die Änderungen an zwei zentralen Parametern, die diese Instructions für einen rekursiven Import von Instructions für einen normalen Import unterscheiden:
- Das Vorhandensein von
"recursive": true. - Der übergebene Parameter
pathist das Stammverzeichnis des S3-Buckets.
Nach Abschluss erscheinen alle importierten Dateien im Ergebnis-JSON der Assembly.
Unterstützung für Pagination
Wie erwähnt verarbeitet der Robot /s3/import tausend Dateien auf einmal. Doch was, wenn Sie diese ersten tausend Dateien gar nicht importieren müssen, sondern vielleicht den zehnten Block von tausend Dateien? Um dabei zu helfen, haben wir Unterstützung für Pagination zusammengestellt. Sie können den Robot jetzt auch auf genau die Seite verweisen, ab der er mit dem Import beginnen soll. Werfen Sie einen Blick auf die Assembly Instructions unten:
{
"steps": {
"imported": {
"robot": "/s3/import",
"result": true,
"credentials": "s3_cred",
"path": "/",
"recursive": true,
"page_number": 10,
"files_per_page": 500
},
"resized": {
"use": ["imported"],
"robot": "/image/resize",
"result": true,
"height": 130,
"imagemagick_stack": "v2.0.3",
"width": 130,
"zoom": false
},
"exported": {
"use": ["imported", "resized"],
"robot": "/s3/store",
"credentials": "s3_cred",
"path": "${file.original_path}-resized@130/${file.basename}.${file.ext}"
}
}
}
Wie Sie sehen, haben wir dem Robot mitgeteilt, dass er ab der zehnten Seite beginnen und rekursiv fünfhundert Dateien pro Seite importieren soll.
Dabei sollten Sie einige Punkte besonders beachten:
- Wenn Sie eine Seitenzahl außerhalb des gültigen Bereichs angeben, liefert der Robot keine Ergebnisse.
- Wenn Sie einen Parameter
files_per_pagemit einem Wert größer als 1000 angeben, führt das zu einem Validierungsfehler. - Wenn Sie rekursive Importe verwenden, werden alle Dateien in alphabetischer Reihenfolge importiert.
Das war’s wieder von uns. Viel Freude beim Importieren! Und wenn Sie Fragen, Anmerkungen oder Bedenken haben, lassen Sie es uns wissen.
