iOS + Transloadit
Créer des téléversements depuis iOS à l’aide d’un Template, de TransloaditKit 3.5.0 et de l’intégration de signature du backend authentifié de votre application.
Recette exécutable
Mettre en place l’intégration
Cet utilitaire Swift crée une Assembly à partir d’un Template, met un fichier local en file d’attente pour le téléversement et interroge périodiquement son statut. Votre application fournit l’intégration de signature authentifiée décrite dans le guide TransloaditKit.
- Installez TransloaditKit en version exactement 3.5.0 avec Swift Package Manager ou CocoaPods. Swift Package Manager épingle TUSKit en version 3.6.0 ; conservez les versions de dépendances résolues avec votre projet.
- Créez un Template géré par le serveur avec les surcharges de Steps désactivées et exigez la Signature Authentication. Configurez le backend pour qu’il n’autorise que le flux de travail prévu, en suivant le guide de signature et d’utilisation de TransloaditKit.
- Remplacez les espaces réservés de l’Auth Key, de l’identifiant de Template et du chemin du fichier local, puis appelez createAssembly avec le SignatureGenerator synchrone de votre application et des gestionnaires pour les événements completion et statusChanged.
- Appelez createAssembly en dehors du thread principal, conservez le client Transloadit renvoyé pendant toute la durée de l’opération et envoyez les mises à jour de l’interface vers la file principale. Gérez les échecs dans les deux 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
}
Authentification
- Transmettez à la fonction utilitaire l’Auth Key publique et le SignatureGenerator authentifié de votre application. Conservez l’Auth Secret côté backend et exigez la Signature Authentication pour le Workspace ou le Template.
- Le backend doit authentifier l’utilisateur et autoriser précisément l’Auth Key, le Template, les champs, le traitement, les destinations et l’expiration avant de signer les octets UTF-8 d’origine de params. Rejetez les Steps supplémentaires et les options inconnues ; la seule correspondance du paramètre template_id ne suffit pas.
- TransloaditKit 3.5.0 utilise une closure de complétion de signature non échappante (nonescaping). Appelez-la exactement une fois avant le retour du SignatureGenerator, y compris en cas de refus et d’expiration du délai, en utilisant un transport synchrone avec un délai d’expiration fini, en dehors du thread principal.
Limitations et notes opérationnelles
- Le SDK fixe auth.expires à 24 heures et le callback de signature ne peut pas remplacer les paramètres. Si votre politique exige une expiration plus courte, rejetez la requête et utilisez la création d’Assembly côté backend.
- Cet utilitaire couvre un seul Template et des fichiers locaux. TransloaditKit 3.5.0 ne peut pas combiner un Template avec des surcharges de Steps ni définir des options arbitraires d’Assembly et d’authentification ; utilisez la création d’Assembly côté backend lorsque ces contrôles sont nécessaires.
- Le callback de création signifie que l’Assembly existe et que les téléversements ont été planifiés ; il ne signifie pas que le téléversement des fichiers ou le traitement est terminé.
- Le nombre de fichiers attendu par le SDK ne fait pas partie des paramètres signés et ne constitue pas une limite d’autorisation. Appliquez les quotas et les restrictions de fichiers via le flux de travail contrôlé par le serveur ; créez l’Assembly côté backend si le Template ne peut pas appliquer vos exigences.
- L’utilitaire nécessite le mécanisme de connexion et de transport des signatures de votre application. La planification en arrière-plan, la reprise des transferts, la gestion du cycle de vie et l’accès aux fichiers doivent être intégrés et testés sur vos appareils cibles.
Autres intégrations