Von Filestack zu Transloadit migrieren
Filestack vereint Dateiauswahl, Upload, Transformationen, Workflows und Storage. Bei Transloadit übernimmt Uppy die Dateiauswahl im Browser und Robots übernehmen die Dateiverarbeitung. Definieren Sie einen unterstützten Workflow in einem Template und erstellen Sie Assemblies anschließend mit einem SDK, Uppy oder der REST API. Prüfen Sie die von Ihrer Anwendung genutzten Aufgaben einzeln; die folgende Zuordnung verspricht keine vollständige Funktionsparität.
Migrationsübersicht
| Filestack-Konzept | Transloadit-Entsprechung |
|---|---|
| Picker | Uppy mit Transloadit |
| Upload | 🤖/upload/handle |
| Transformationsaufgabe | Robot-Step in einem Template |
| Bildkonvertierung/Größenänderung | 🤖/image/resize |
| Dokumentvorschau | 🤖/document/thumbs oder 🤖/file/preview (English) (Beta) |
| Virenscan | 🤖/file/virusscan |
| Workflow | Transloadit-Template |
| Storage-Aliase | Zugangsdaten von Drittanbietern sowie ein Export-Robot |
| Webhook | Assembly Notification |
Für jeden Workflow ein Template erstellen
Dieses Template prüft den erkannten MIME-Typ, erstellt ein Bild-Thumbnail oder ein Thumbnail der
ersten PDF-Seite und speichert akzeptierte Originale sowie Vorschauen. Andere MIME-Typen brechen die
Assembly mit einem Fehler ab. Dabei handelt es sich um eine Typfilterung, nicht um eine
Malware-Prüfung; ergänzen Sie /file/virusscan, wenn Ihr Workflow das erfordert:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"accepted_files": {
"use": ":original",
"robot": "/file/filter",
"accepts": [["${file.mime}", "regex", "^(image/[^/]+|application/pdf)$"]],
"error_on_decline": true
},
"images": {
"use": "accepted_files",
"robot": "/file/filter",
"accepts": [["${file.mime}", "regex", "^image/"]]
},
"pdfs": {
"use": "accepted_files",
"robot": "/file/filter",
"accepts": [["${file.mime}", "=", "application/pdf"]]
},
"image_thumb": {
"use": "images",
"robot": "/image/resize",
"width": 600,
"height": 600,
"resize_strategy": "fit",
"format": "webp",
"result": true
},
"document_thumb": {
"use": "pdfs",
"robot": "/document/thumbs",
"format": "jpg",
"page": 1,
"width": 600,
"resize_strategy": "fit",
"result": true
},
"exported": {
"use": ["accepted_files", "image_thumb", "document_thumb"],
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "filestack-import/${unique_prefix}/${file.url_name}",
"url_prefix": "https://cdn.example.com/",
"acl": "bucket-default"
}
}
}
Die beiden Routing-Filter nutzen MIME-Typen, um Bilder und PDFs auf getrennten Vorschau-Zweigen zu halten. Abgelehnte Originale gelangen nie in den Export-Step. Eine Assembly ist keine Transaktion: Bereits exportierte akzeptierte Dateien werden nicht zurückgerollt, wenn eine andere Datei fehlschlägt. Fehler ignorieren unterdrückt Fehlschläge; es ist kein Ersatz für Routing oder Validierung.
Konfigurieren Sie Ihr CDN so, dass es den Bucket-Root liest; url_prefix ändert
lediglich die zurückgegebenen URLs. acl: "bucket-default"
sendet keine Objekt-ACL; steuern Sie den Zugriff über Ihre Bucket-Policy und den Origin-Zugriff des
CDN. Lesen Sie nach ASSEMBLY_COMPLETED akzeptierte Originale aus
results.accepted_files und Vorschauen aus results.image_thumb und
results.document_thumb. Der Export ergänzt oder aktualisiert Einträge unter den Steps, die in
seinem Parameter use genannt sind, sofern dieser Step nicht ausdrücklich
result: false setzt. Speichern Sie dauerhaft nur Einträge mit
is_temp_url: false. Temporäre Transloadit-URLs laufen nach 24 Stunden ab; siehe
Konvertierungsergebnisse speichern.
Dateiauswahl ersetzen
Ersetzen Sie für Browser-Integrationen den Filestack-Picker durch Uppy.
Uppy kann lokale Dateien auswählen, Uploads per Drag-and-drop verarbeiten und Remote-Quellen
anbinden. Das Transloadit-Plugin sendet Dateien mithilfe Ihres Templates an eine Assembly.
Aktivieren Sie waitForEncoding, um fertige Verarbeitungsergebnisse im Browser zu
erhalten, oder setzen Sie notify_url in Ihrer signierten Assembly-Anfrage und
verarbeiten Sie Assembly Notifications in Ihrem Backend. Prüfen Sie
die Signaturen der Notifications und verlangen Sie einen erfolgreichen Abschluss, bevor Sie Ihre
Datenbank aktualisieren.
Bestehende Filestack-URLs importieren
Wenn bestehende Filestack-Handles zu HTTPS-URLs auflösen, migrieren Sie sie mit 🤖/http/import:
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "${fields.filestack_url}"
},
"preview": {
"use": "imported",
"robot": "/file/preview",
"result": true
},
"exported": {
"use": ["imported", "preview"],
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "filestack-backfill/${unique_prefix}/${file.url_name}",
"acl": "bucket-default"
}
}
}
Wählen Sie autorisierte Werte für filestack_url aus dem Asset-Inventar Ihres
Backends aus. /file/preview befindet sich in der Beta-Phase und greift auf ein
generisches Dateityp-Symbol zurück, wenn kein inhaltsbasiertes Thumbnail erzeugt werden kann. Führen
Sie begrenzte Backfill-Jobs aus; /http/import akzeptiert auch ein Array von URLs.
Behalten Sie Quell-Handles und URLs, bis Zugriff und Qualität des abgeschlossenen Exports geprüft
sind. Private S3-Objekte erfordern einen autorisierten Download oder Ihr konfiguriertes CDN. Das
Import-Template gibt exportierte Dateien unter results.imported
und results.preview zurück.
Checkliste
- Erfassen Sie die Nutzung des Filestack-Pickers und die Workflow-Aufgaben.
- Überführen Sie jeden Workflow in ein Transloadit-Template.
- Verschieben Sie Ihre Storage-Zugangsdaten in Zugangsdaten von Drittanbietern.
- Ersetzen Sie den Picker-Code durch Uppy und das Transloadit-Plugin.
- Speichern Sie exportierte Storage-URLs aus Assembly Notifications.
- Führen Sie für bestehende Filestack-Dateien einen Backfill mit
/http/importdurch.