iOS + Transloadit
Erstellen Sie Uploads von iOS aus mit einem Template, TransloaditKit 3.5.0 und der authentifizierten Backend-Signierintegration Ihrer App.
Ausführbare Anleitung
Integration aufbauen
Diese Swift-Hilfsfunktion erstellt eine Assembly aus einem Template, stellt eine lokale Datei zum Hochladen in die Queue und fragt regelmäßig den Status der Assembly ab. Ihre App stellt die authentifizierte Signierintegration bereit, die in der TransloaditKit-Anleitung beschrieben wird.
- Installieren Sie TransloaditKit in genau der Version 3.5.0 mit Swift Package Manager oder CocoaPods. Swift Package Manager legt TUSKit auf Version 3.6.0 fest. Bewahren Sie die aufgelösten Abhängigkeitsversionen zusammen mit Ihrem Projekt auf.
- Erstellen Sie ein serverseitig verwaltetes Template mit deaktivierten Step-Überschreibungen und setzen Sie Signature Authentication voraus. Konfigurieren Sie das Backend so, dass es ausschließlich den vorgesehenen Workflow zulässt. Folgen Sie dabei der TransloaditKit-Anleitung zum Signieren und zur Nutzung.
- Ersetzen Sie die Platzhalter für den Auth Key, die Template ID und den lokalen Dateipfad. Rufen Sie anschließend createAssembly mit dem synchronen SignatureGenerator Ihrer App und Handlern für completion und statusChanged auf.
- Rufen Sie createAssembly außerhalb des Hauptthreads auf, behalten Sie den zurückgegebenen Transloadit-Client für die Dauer des Vorgangs bei und leiten Sie UI-Aktualisierungen an die Haupt-Queue weiter. Behandeln Sie Fehler in beiden Callbacks.
Upload.swift
// Swift Package Manager:
// .package(url: "https://github.com/transloadit/TransloaditKit", exact: "3.5.0")
// Or CocoaPods: pod 'Transloadit', '3.5.0'
// Pin its dependency too: pod 'TUSKit', '3.6.0'
import Foundation
#if canImport(TransloaditKit)
import TransloaditKit
#else
import Transloadit
#endif
// TransloaditKit 3.5.0. Supply your app’s authenticated signing integration.
// Its backend must authorize params, expiry, processing and destination policy,
// then sign the exact original UTF-8 bytes. Do not reserialize them.
// The signing completion is nonescaping: call it synchronously exactly once
// before the signature generator returns, including denial and timeout.
// Use synchronous transport with a finite timeout, off the main thread.
// The SDK fixes a 24-hour expiry; use backend creation if policy requires less.
// Retain the returned client for the operation’s lifetime.
// Signing guide: https://transloadit.com/docs/sdks/transloaditkit/#user-content-transloaditkit-usage
func createAssembly(
signatureGenerator: @escaping SignatureGenerator,
configuration: URLSessionConfiguration = .default,
completion: @escaping (Result<Assembly, TransloaditError>) -> Void,
statusChanged: @escaping (Result<AssemblyStatus, TransloaditError>) -> Void
) -> Transloadit {
let transloadit = Transloadit(
apiKey: "YOUR_TRANSLOADIT_KEY",
sessionConfiguration: configuration,
signatureGenerator: signatureGenerator
)
// Replace these paths with local file URLs from your app.
let filesToUpload: [URL] = [
URL(fileURLWithPath: "/path/to/file.jpg"),
]
transloadit.createAssembly(templateId: "YOUR_TRANSLOADIT_TEMPLATE_ID", andUpload: filesToUpload, completion: completion)
.pollAssemblyStatus(completion: statusChanged)
return transloadit
}
Authentifizierung
- Übergeben Sie den öffentlichen Auth Key und den authentifizierten SignatureGenerator Ihrer App an die Hilfsfunktion. Bewahren Sie das Auth Secret im Backend auf und setzen Sie Signature Authentication für den Workspace oder das Template voraus.
- Das Backend muss den Benutzer authentifizieren. Der konkrete Auth Key, das Template, die Felder, die Verarbeitung, die Ziele und die Ablaufzeit müssen vom Backend autorisiert werden, bevor es die ursprünglichen UTF-8-Bytes von params signiert. Lehnen Sie zusätzliche Steps und unbekannte Optionen ab; eine Übereinstimmung von template_id allein reicht nicht aus.
- TransloaditKit 3.5.0 verwendet eine nonescaping-Abschlussfunktion zum Signieren. Rufen Sie diese genau einmal auf, bevor SignatureGenerator zurückkehrt, auch bei Ablehnung und Zeitüberschreitung. Verwenden Sie dafür außerhalb des Hauptthreads einen synchronen Transport mit endlichem Timeout.
Einschränkungen und Hinweise zum Betrieb
- Das SDK legt auth.expires auf 24 Stunden fest, und der Signier-Callback kann die params nicht ersetzen. Wenn Ihre Richtlinie eine kürzere Gültigkeitsdauer erfordert, lehnen Sie die Anfrage ab und erstellen Sie die Assembly im Backend.
- Diese Hilfsfunktion unterstützt ein Template und lokale Dateien. TransloaditKit 3.5.0 kann ein Template weder mit Step-Überschreibungen kombinieren noch beliebige Assembly- und Authentifizierungsoptionen festlegen. Erstellen Sie Assemblies im Backend, wenn Sie diese Steuerungsmöglichkeiten benötigen.
- Der Callback create bedeutet, dass die Assembly existiert und Uploads eingeplant wurden; er bedeutet nicht, dass der Datei-Upload oder die Verarbeitung abgeschlossen ist.
- Die vom SDK erwartete Dateianzahl liegt außerhalb der signierten params und stellt keine Autorisierungsgrenze dar. Setzen Sie Kontingente und Dateibeschränkungen durch den serverseitig verwalteten Workflow durch. Erstellen Sie Assemblies im Backend, wenn das Template Ihre Anforderungen nicht durchsetzen kann.
- Die Hilfsfunktion benötigt die Anmeldung und den Signiertransport Ihrer App. Hintergrundplanung, Wiederaufnehmbarkeit, Lebenszyklusverwaltung und Dateizugriff müssen auf Ihren Zielgeräten integriert und getestet werden.
Weitere Integrationen