Migration von Uploadcare zu Transloadit
Uploadcare bietet Upload-, Management- und URL-APIs, einschließlich CDN-Auslieferung und Dateigruppen. Transloadit trennt diese Belange in Upload-/Import-Robots, Verarbeitungs-Robots, Export-Robots und optionale CDN-Auslieferung. Erfassen Sie die von Ihnen genutzten Vorgänge und ordnen Sie unterstützte Verarbeitungsaufgaben Steps in einem Transloadit-Template zu; dies ist kein Eins-zu-eins-Ersatz für jede Uploadcare-Funktion.
Für gehostete Dateien können Sie Transloadit Storage (English) (derzeit in der Beta-Phase) wählen oder Ihren eigenen Speicher verwenden. Mit Transloadit Storage ist ein separates Speicherkonto optional. Die File Library (Preview) bietet Digital Asset Management, mit dem Sie Dateien in Transloadit Storage durchblättern, organisieren, in der Vorschau ansehen und herunterladen können. Der Zugriff auf die File Library wird pro Workspace freigeschaltet; fragen Sie uns nach der Verfügbarkeit dieser Funktion.
Der unten gezeigte ausführbare Workflow demonstriert die Option mit eigenem Speicher. Er verlagert Uploads und Verarbeitung auf Templates und exportiert Dateien in Ihren Bucket. Die Migration bestehender Asset-Ordner und Metadaten, die Umstellung von Auslieferungs-URLs sowie der Ersatz von Asset-Pickern oder CMS-/Editor-Integrationen erfordern einen separaten Migrationsplan; die folgenden Beispiele setzen diese nicht um.
Migrationsübersicht
| Uploadcare-Konzept | Transloadit-Migrationsentscheidung |
|---|---|
| Dateiuploader | Uppy mit Transloadit oder ein anderes SDK |
| CDN-Operations-URL | Template-Steps oder Smart CDN mit kompatiblen Robots und einem abschließenden /file/serve-Step |
| Bildgrößenänderung/-zuschnitt | 🤖/image/resize |
| Bildkomprimierung | 🤖/image/optimize, mit einer expliziten Format-/Qualitätsentscheidung |
| Video-Encoding | 🤖/video/encode |
| Dateigruppen | Mehrere Eingabedateien in einer Assembly verarbeiten; die alte Gruppen-ID, geordnete Mitgliedschaft und das Transformationsrezept jedes Mitglieds in Ihrer Anwendung beibehalten |
| Speicher | 🤖/s3/store oder ein anderer Export-Robot |
| Webhooks | Assembly Notifications; Payload-Verarbeitung und -Verifizierung neu schreiben |
Verwenden Sie Step-Abhängigkeiten, um Dateien zwischen Verarbeitungsaufgaben zu leiten, nicht um persistente Dateigruppeneinträge zu ersetzen. Signieren Sie Smart-CDN-URLs auf Ihrem Backend und verwenden Sie für die On-Demand-Auslieferung ein separates kompatibles Template.
Transformationsentscheidungen. Erfassen Sie vollständige URL-Operationsketten,
Anwendungsvoreinstellungen, Zuschnittkoordinaten, Ausrichtung, Abmessungen, Qualität und Format.
Bei Uploadcare wählt format/auto Formate anhand der
Fähigkeiten des Browsers aus; der feste WebP-Avatar unten bildet diese Aushandlung nicht nach.
Vergleichen Sie Ausgaben an repräsentativen Bildern, einschließlich Transparenz und Animation.
Videokonvertierungen benötigen eigene Templates; keines der folgenden Beispiele migriert
Video-Streaming, Dokumentkonvertierung, jede URL-Operation oder benutzerdefinierte Uploader-Plugins.
Moderation ist ein eigener Workflow. Bei Uploadcare kann die
Moderation unsicherer Inhalte Bilder beim Upload oder über ein
asynchrones REST-Add-on scannen, mit Ergebnissen in appdata. Bewahren Sie das
Moderationsergebnis und die Richtlinie, einschließlich Schwellenwerten und Lösch-/Prüfentscheidungen,
in Ihrer Migrationsübersicht. Diese Beispiele optimieren oder generieren Vorschauen von Dateien; sie
bilden dieses Moderations-Gate nicht nach. Wählen und validieren Sie einen Ersatz, bevor Sie
nutzergenerierte Inhalte veröffentlichen, und behalten Sie das bestehende Gate bei, bis dieser bereit
ist. MIME-Filterung, Malware-Scans und die Erkennung unangemessener Inhalte adressieren andere
Probleme.
Das Upload-Widget ersetzen
Verwenden Sie für Browser-Uploads Uppy mit dem Transloadit-Plugin. Uppy bietet eine Dateiauswahl, eine Drag-and-Drop-Oberfläche, fortsetzbare Uploads, Remote-Quellen und direkte Transloadit-Integration.
Ein typischer Uploadcare-Ablauf, bei dem Nutzer ein Bild hochladen und transformierte CDN-URLs erhalten, wird zu:
- Der Browser lädt über Uppy hoch und verweist auf ein gespeichertes Transloadit-Template.
- Das Template erstellt alle Varianten, die Ihre App benötigt.
- Transloadit benachrichtigt Ihr Backend mit den Ergebnis-URLs.
- Ihr Backend speichert diese URLs in Ihrer Datenbank.
Konfigurieren Sie eine notify_url in der signierten Assembly-Anfrage und
verifizieren Sie eingehende Benachrichtigungssignaturen. Aktivieren Sie für den clientseitigen
Abschluss Uppys waitForEncoding; die Standardeinstellung wartet nur auf den Upload.
Schreiben Sie Callbacks neu, die Uploadcare-UUIDs, Gruppen-IDs oder CDN-Operations-URLs erwarten. Behalten Sie Ihre eigene Asset-ID bei und verknüpfen Sie sie mit der abgeschlossenen Assembly und den exportierten Dateien. Testen Sie lokale und entfernte Quellen, das Fortsetzen, Abbrechen, Validieren und Fehlschläge; das Ersetzen der Upload-Oberfläche ersetzt keinen bestehenden Asset-Browser oder keine CMS-Integration.
Die Webhooks von Uploadcare decken Upload-, Datei-Informations-,
Speicher- und Löschereignisse ab. Ein optionales Signier-Secret erzeugt einen
X-Uc-Signature-Header, und fehlgeschlagene Zustellungen werden wiederholt. Ordnen
Sie den Abschluss der Verarbeitung Assembly Notifications zu, behandeln Sie Katalog- und
Löschereignisse in Ihrer Anwendung und verwenden Sie die eigene Benachrichtigungsverifizierung von
Transloadit. Machen Sie Aktualisierungen anhand der Assembly ID idempotent und verlangen Sie einen
erfolgreichen Export vor der Veröffentlichung. Testen Sie das Wiederholungs- und
Abgleichsverhalten, statt die alte Ereignis-Payload oder den alten Wiederholungsplan zu übernehmen.
Sicherheitsentscheidungen. Bei Uploadcare autorisieren signierte Uploads die Aufnahme; signierte Auslieferung beschränkt den Zugriff separat über eine sichere CDN-Subdomain oder eine konfigurierte benutzerdefinierte Domain. Erfassen Sie öffentliche und private Pfade, Token-Ablauf und zulässige Varianten. Verwenden Sie backend-signierte Transloadit-Anfragen für die zulässigen Templates und Felder, und erzwingen Sie die Download-Autorisierung dann über Ihren Bucket/CDN. Eine signierte Assembly-Anfrage gewährt oder beschränkt keinen Zugriff auf ein exportiertes S3-Objekt. Machen Sie private Dateien nicht öffentlich, um die Migration zu vereinfachen. Wenn Sie Uploadcare-Malware-Schutz nutzen, fügen Sie einen expliziten Scan-Step sowie ein Quarantäne-/Veröffentlichungs-Gate hinzu und testen Sie es; die abgebildeten Templates scannen keine Dateien. Die vollständige ACL-Umsetzung, Compliance-Qualifizierung und regionale Weiterleitung liegen außerhalb der Beispiele dieses Leitfadens.
Beispiel-Template
Dieses Template nimmt einen Bild-Upload entgegen, erstellt einen quadratischen WebP-Avatar,
optimiert sowohl das Original als auch den Avatar und speichert die optimierten Dateien auf S3. Die
Optimierung hat keinen Format-Parameter und gibt, solange progressive wie hier
deaktiviert bleibt, das Original zurück, falls die optimierte Datei größer ist. Wird
progressive aktiviert, kann ein Optimierungsergebnis auch dann beibehalten werden,
wenn es größer ist:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"avatar": {
"use": ":original",
"robot": "/image/resize",
"width": 512,
"height": 512,
"resize_strategy": "fillcrop",
"format": "webp"
},
"optimized_original": {
"use": ":original",
"robot": "/image/optimize",
"result": true
},
"optimized_avatar": {
"use": "avatar",
"robot": "/image/optimize",
"result": true
},
"exported": {
"use": ["optimized_original", "optimized_avatar"],
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "uploads/${unique_prefix}/${file.url_name}",
"url_prefix": "https://cdn.example.com/",
"acl": "bucket-default"
}
}
}
Richten Sie Zugangsdaten von Drittanbietern für S3 ein und konfigurieren
Sie Ihr CDN so, dass es das Bucket-Root mit Lesezugriff ausliefert. url_prefix
erstellt kein CDN und gewährt keinen Zugriff.
acl: "bucket-default" sendet keine Objekt-ACL; konfigurieren
Sie den Zugriff über Ihre Bucket-Policy und den CDN-Origin-Access. Lesen Sie nach
ASSEMBLY_COMPLETED das Original aus results.optimized_original und den Avatar aus
results.optimized_avatar. Speichern Sie dauerhaft nur Einträge mit
is_temp_url: false: Der Export aktualisiert die URLs des erzeugenden Steps. Temporäre
Transloadit-URLs laufen nach 24 Stunden ab; siehe
Ergebnisdateien speichern.
Bestehende Uploadcare-Dateien importieren
Originale und Katalogdaten erfassen. Listen Sie die von Ihrer Anwendung referenzierten UUIDs auf
und gleichen Sie sie mit dem REST-API-Dateiinventar des Projekts ab,
unter Beachtung der Paginierung. Datei-Informationen enthalten
original_file_url, original_filename, Dateigröße, Speicherstatus und
Verarbeitungsdaten. Wählen Sie für jede Datei den autorisierten Original-Download aus; falls
original_file_url fehlt oder die Datei entfernt wurde, beheben Sie diese Lücke, bevor
Sie den Eintrag migrieren. Beziehen Sie bei Bedarf neue signierte Quell-URLs auf Ihrem Backend.
Bewahren Sie beliebige Metadaten,
Tags und relevante appdata in Ihrer Datenbank
oder in Begleitdatensätzen; das Importieren der Bytes kopiert diese nicht.
Dateigruppen
sind unveränderliche Sammlungen mit indexierten Mitgliedern, und ein Mitglied kann ein
Transformationsrezept enthalten. Erfassen Sie die Gruppen-ID, geordnete Mitglieds-UUIDs und Rezepte
separat. Eine Assembly verarbeitet Dateien, bildet diese persistente Sammlung aber nicht nach.
Bewahren Sie Ordnerpfade, andere von Ihrer Anwendung verwaltete Sammlungsbeziehungen und den
Revisionsverlauf, indem Sie Revisionen eigene Speicherschlüssel zuweisen; diese Templates entdecken
und exportieren weder historische Revisionen noch anwendungsspezifische Beziehungen.
Wenn Sie bereits autorisierte Uploadcare-Download-URLs in Ihrem Inventar haben, importieren Sie diese mit 🤖/http/import:
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "${fields.uploadcare_url}"
},
"preview": {
"use": "imported",
"robot": "/file/preview",
"result": true
},
"exported": {
"use": ["imported", "preview"],
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "uploadcare-import/${unique_prefix}/${file.url_name}",
"acl": "bucket-default"
}
}
}
Der Vorschau-Step verwendet 🤖/file/preview (English) (Beta); er kann ein
generisches Dateityp-Symbol zurückgeben, wenn kein Inhalts-Thumbnail verfügbar ist. Wählen Sie
autorisierte uploadcare_url-Werte auf Ihrem Backend. Der Import einer transformierten
CDN-URL kopiert diese Variante, nicht zwangsläufig das Original. Sie können nur referenzierte Dateien
nachträglich einspielen oder für einen begrenzten Batch ein Array autorisierter URLs an
/http/import übergeben. Führen Sie eine Zuordnung von alter ID zu neuem Speicherort
und überprüfen Sie Auslieferungszugriff und Ausgabequalität, bevor Sie Lesezugriffe umstellen. Dieses
Import-Template liefert exportierte Dateien unter results.imported und
results.preview zurück. Private S3-Objekte benötigen einen autorisierten Download oder
Ihr konfiguriertes CDN.
Checkliste
Auslieferungsumstellung. Erfassen Sie eine Zuordnung von jeder UUID und jeder genutzten
Operationskette zu ihrem verifizierten Ziel. Ersetzen Sie URLs in Anwendungsdatensätzen, gerenderten
Seiten, srcset, CSS, E-Mails und CMS-Inhalten; das Anhängen der
Operationssyntax von Uploadcare an einen neuen Speicher-Hostnamen wendet sie nicht an. Verwenden Sie
Weiterleitungen nur auf einer Domain oder Anwendungsroute, die Sie kontrollieren, mit einem Resolver
für die alten Pfade und den vorgesehenen Zugriffsregeln. Aktualisieren Sie bei vom Anbieter
verwalteten CDN-URLs die Referenzen, die Sie kontrollieren, und behalten Sie den Quellzugriff während
der Überlappungszeit bei. Testen Sie Autorisierung, Caching und reale Seiten, bevor Sie
Weiterleitungen dauerhaft machen oder Quelldateien löschen.
Planungsschätzung. Für einen Uploader, einige Bildvarianten, ein zugängliches Inventar und ein bestehendes Bucket/CDN veranschlagen Sie mehrere technische Tage für einen getesteten Pilotlauf, gefolgt von einer gemessenen Nachladezeit. Private Auslieferung, Gruppen, Moderation, CMS-Änderungen sowie Revisions-/Katalogexporte können Wochen oder mehr erfordern. Dies ist eine technische Planungsschätzung, kein gemessener Migrations-Benchmark. Messen Sie Import-, Verarbeitungs- und Exportdurchsatz sowie -kosten an einem repräsentativen Batch, einschließlich Quell-Downloads, Ziel-Auslieferung und dem Zeitraum, in dem beide Dienste parallel laufen.
- Erfassen Sie Originale, Metadaten, Tags, Gruppenreihenfolge/-rezepte, Revisionen, Zugriffsregeln, Operationen, Uploader-Callbacks und Moderationsergebnisse. Klären Sie ausgeschlossene Funktionen vor der Umstellung.
- Versionieren Sie die Template Instructions in Ihrem Repository und testen Sie die erforderlichen Varianten und Gates. Bewahren Sie Template-Revisionen, Assembly IDs, Fehlschläge und Zielzuordnungen für den Support auf.
- Konfigurieren Sie Zugangsdaten, Speicher-/CDN-Zugriff, Signierung und den Benachrichtigungsempfänger. Verifizieren Sie dauerhafte Zustellung sowie den Umgang mit Duplikaten/Fehlern in einem Pilotlauf.
- Legen Sie begrenzte Batch-Größen, Parallelität, Wiederholungslimits und ein Migrationsbudget fest. Bestätigen Sie Verarbeitungs- und Speicherregionen, Aufbewahrung und Compliance-Anforderungen, bevor Sie Daten verschieben.
- Stellen Sie neue Uploads hinter einem Feature-Flag um, laden Sie in begrenzten Batches nach und gleichen Sie unvollständige Exporte vor Wiederholungen ab. Vergleichen Sie Originale, Derivate, Katalogzahlen und privaten Zugriff.
- Aktualisieren Sie Lese- und Auslieferungsreferenzen kohortenweise und bewahren Sie die Quellzuordnung für ein Rollback. Gleichen Sie das endgültige Quelldelta ab und halten Sie die alte Auslieferung verfügbar, bis das Rollback-Fenster und die Cache-Lebensdauern verstrichen sind.