iOS + Transloadit
Crea subidas desde iOS con un Template, TransloaditKit 3.5.0 y la integración de firma autenticada del backend de tu aplicación.
Receta ejecutable
Crea la integración
Esta función auxiliar de Swift crea una Assembly a partir de un Template, pone un archivo local en cola para su subida y consulta periódicamente el estado de la Assembly. Tu aplicación proporciona la integración de firma autenticada descrita en la guía de TransloaditKit.
- Instala exactamente la versión 3.5.0 de TransloaditKit con Swift Package Manager o CocoaPods. Swift Package Manager fija TUSKit en la versión 3.6.0; conserva las versiones resueltas de las dependencias junto con tu proyecto.
- Crea un Template controlado por el servidor con las sobrescrituras de Steps deshabilitadas y exige Signature Authentication. Configura el backend para permitir únicamente el flujo de trabajo previsto, siguiendo la guía de firma y uso de TransloaditKit.
- Reemplaza los marcadores de posición de la Auth Key, el Template ID y la ruta del archivo local; luego llama a createAssembly con el SignatureGenerator síncrono de tu aplicación y los manejadores de completion y statusChanged.
- Llama a createAssembly fuera del hilo principal, conserva el cliente Transloadit devuelto durante la operación y envía las actualizaciones de la interfaz a la cola principal. Gestiona los fallos en ambos 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
}
Autenticación
- Pasa la Auth Key pública y el SignatureGenerator autenticado de tu aplicación a la función auxiliar. Mantén el Auth Secret en el backend y exige Signature Authentication para el Workspace o el Template.
- El backend debe autenticar al usuario y autorizar los valores exactos de la Auth Key, del Template, de los campos, del procesamiento, de los destinos y del vencimiento antes de firmar los bytes originales de params en UTF-8. Rechaza los Steps adicionales y las opciones desconocidas; comprobar únicamente que template_id coincida no es suficiente.
- TransloaditKit 3.5.0 utiliza un callback de finalización de firma nonescaping. Llámalo exactamente una vez antes de que retorne SignatureGenerator, incluso en caso de denegación o de agotarse el tiempo de espera, mediante un transporte síncrono con un tiempo de espera finito fuera del hilo principal.
Limitaciones y notas operativas
- El SDK fija auth.expires en 24 horas y el callback de firma no puede reemplazar los parámetros. Si tu política exige un plazo de vencimiento más corto, rechaza la solicitud y crea las Assemblies desde el backend.
- Esta función auxiliar admite un Template y archivos locales. TransloaditKit 3.5.0 no puede combinar un Template con sobrescrituras de Steps ni establecer opciones arbitrarias de Assembly y autenticación; crea las Assemblies desde el backend cuando se requieran esos controles.
- El callback create significa que la Assembly existe y que las subidas se programaron; no significa que la subida o el procesamiento de los archivos haya terminado.
- El número de archivos esperado por el SDK queda fuera de los parámetros firmados y no constituye un límite de autorización. Aplica las cuotas y las restricciones de archivos mediante el flujo de trabajo controlado por el servidor; crea las Assemblies desde el backend si el Template no puede hacer cumplir tus requisitos.
- La función auxiliar requiere el inicio de sesión y el transporte de firma de tu aplicación. La programación en segundo plano, la capacidad de reanudación, la gestión del ciclo de vida y el acceso a archivos requieren integración y pruebas en los dispositivos de destino.
Más integraciones