Von Cloudinary zu Transloadit migrieren
Cloudinary stellt bei der Medienverarbeitung Upload-Voreinstellungen, Transformations-URLs und die eigene Asset-Bibliothek in den Mittelpunkt. Transloadit stellt bei der Verarbeitung Assembly Instructions in den Mittelpunkt: explizite Workflows, die Robots zum Hochladen, Importieren, Transformieren, Optimieren, Speichern und Ausliefern von Dateien ausführen.
Diese Anleitung zeigt, wie Sie gängige Cloudinary-Muster in Transloadit-Templates übertragen.
Migrationsübersicht
| Cloudinary-Konzept | Transloadit-Entsprechung |
|---|---|
| Upload-Voreinstellung | Gespeichertes Template, auf das template_id verweist |
| Transformations-URL | Eine Assembly-Anfrage oder Smart CDN mit kompatiblen Robots und einem abschließenden Step mit /file/serve |
| Eager-Transformation | Template-Steps beim Upload ausführen statt bei Bedarf |
| Größenänderung/Zuschnitt von Bildern | 🤖/image/resize |
| Bildoptimierung | 🤖/image/optimize |
| Video transkodieren | 🤖/video/encode |
| Adaptives Video | 🤖/video/adaptive oder 🤖/video/ondemand (Beta) |
| Asset-Speicherung | 🤖/s3/store oder ein anderer Export-Robot |
| Auslieferungs-URLs | Ihre Storage-/CDN-URLs oder Smart CDN mit einem abschließenden 🤖/file/serve-Step |
| Webhooks | Assembly Notifications |
Beginnen Sie mit dem Workflow, nicht mit der URL
Cloudinary-URLs codieren die Transformation oft direkt in der URL. Bei Transloadit legen Sie diese Transformation in einem Template ab und rufen es aus Ihrer App auf. So bleiben die Verarbeitungsregeln an einer einzigen serverseitigen Stelle. Verwalten Sie Template-Definitionen in Ihrer eigenen Versionskontrolle zusammen mit Ihrem Anwendungscode.
Eine Cloudinary-Bild-URL, die zuschneidet, die Größe ändert, konvertiert und optimiert, kann beispielsweise zu diesem Template werden:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"hero": {
"use": ":original",
"robot": "/image/resize",
"width": 1600,
"height": 900,
"resize_strategy": "fillcrop",
"format": "webp"
},
"optimized": {
"use": "hero",
"robot": "/image/optimize",
"result": true
},
"exported": {
"use": "optimized",
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "media/${unique_prefix}/${file.url_name}",
"url_prefix": "https://cdn.example.com/",
"acl": "bucket-default"
}
}
}
Ersetzen Sie YOUR_AWS_CREDENTIALS durch gespeicherte Zugangsdaten von Drittanbietern.
Dieses Beispiel setzt voraus, dass Ihr CDN das Bucket-Root ausliefert und die Berechtigung hat,
dessen Objekte zu lesen; url_prefix ändert nur die zurückgegebenen URLs, nicht die CDN-Konfiguration oder die Zugriffsberechtigungen.
acl: "bucket-default" sendet keine Objekt-ACL; konfigurieren Sie den Zugriff über
Ihre Bucket-Policy und den CDN-Origin-Zugriff.
Ihr Backend erstellt eine signierte Assembly-Anfrage mit der gespeicherten template_id und einer notify_url für
Assembly Notifications. Prüfen Sie die Signatur der Notification und verlangen Sie
ASSEMBLY_COMPLETED, bevor Sie Anwendungsdatensätze umstellen. Lesen Sie in diesem Beispiel die exportierten Dateien
aus results.optimized: Der speichernde Step aktualisiert die URLs des erzeugenden Steps. Speichern Sie dauerhaft nur Ergebnisse
mit is_temp_url: false; temporäre Transloadit-URLs laufen nach 24 Stunden ab und sind keine Auslieferungs-URLs. Siehe
Speichern von Konvertierungsergebnissen.
Dynamische Bild-URLs ersetzen
Wenn Ihre App auf dynamische Transformations-URLs setzt, gibt es zwei gängige Migrationswege:
- Verwenden Sie ein Template pro Transformationsfamilie und starten Sie dann eine Assembly, wenn das Asset erstellt oder geändert wird.
- Verwenden Sie Smart CDN mit signierten URLs für On-Demand-Transformationen, die am Edge zwischengespeichert werden sollen.
Für Seiten mit hohem Traffic sollten Sie kanonische Varianten vorab erzeugen und speichern. Bei sehr großen Asset-Bibliotheken mit Long-Tail-Zugriffsmustern kann Smart CDN den Vorverarbeitungsaufwand reduzieren.
Smart CDN benötigt ein separates Template, das ausschließlich aus kompatiblen Robots besteht und
dessen Antwortzweig mit /file/serve endet. Importieren Sie beispielsweise ein Bild, ändern Sie seine
Größe und liefern Sie diese Ausgabe aus. /video/encode und
/video/adaptive sind nicht Smart CDN-kompatibel; erzeugen Sie signierte Smart CDN-URLs in Ihrem Backend.
Vorhandene Cloudinary-Assets importieren
Wenn vorhandene Medien über HTTPS-URLs verfügbar sind, verwenden Sie 🤖/http/import, statt sie erneut hochzuladen:
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "${fields.cloudinary_url}"
},
"thumbnail": {
"use": "imported",
"robot": "/image/resize",
"width": 400,
"height": 400,
"resize_strategy": "fillcrop",
"result": true
},
"exported": {
"use": ["imported", "thumbnail"],
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "cloudinary-import/${unique_prefix}/${file.url_name}",
"acl": "bucket-default"
}
}
}
Übergeben Sie im Assembly-Feld cloudinary_url eine autorisierte Quell-URL, die Ihr Backend aus
Ihrem Asset-Bestand auswählt. Eine transformierte Cloudinary-URL importiert diese Variante, nicht
automatisch das Original. Behalten Sie die alte Asset-ID und URL, bis der abgeschlossene Export über
Ihren vorgesehenen Auslieferungspfad erreichbar ist und seine Abmessungen und seine Qualität Ihren
Anforderungen entsprechen. Dieses Import-Template gibt exportierte Dateien unter results.imported und results.thumbnail zurück. Ein privates S3-Objekt erfordert weiterhin einen
autorisierten Download oder Ihr konfiguriertes CDN.
Checkliste
- Listen Sie die Cloudinary-Transformationen auf, die Ihre Anwendung tatsächlich verwendet.
- Fassen Sie ähnliche Transformationen in Transloadit-Templates zusammen.
- Erstellen Sie Zugangsdaten von Drittanbietern für Ihren Ziel-Storage-Anbieter.
- Fügen Sie Assembly Notifications hinzu, damit Ihre App die exportierten Storage-URLs speichern kann.
- Übertragen Sie vorhandene Assets nachträglich mit
/http/importin begrenzten Batches; dessen Parameterurlakzeptiert auch ein Array. - Passen Sie den Auslieferungscode an, sodass er aus Ihrem Storage/CDN oder aus Smart CDN liest.