Beta del SDK de Flutter de Transloadit: soporte para apps multiplataforma
En septiembre de 2022, presentamos un SDK de Transloadit para Flutter, el framework de desarrollo
multiplataforma. La versión 0.2.0 proporcionaba funciones que encapsulaban
operaciones de la API de Transloadit y subidas reanudables de archivos mediante el protocolo tus.
Lo presentamos como una beta, invitamos a los usuarios a probarlo y reportar errores, y no lo
considerábamos listo para producción.
El paquete está publicado en pub.dev.

Actualización de seguridad, septiembre de 2026: El ejemplo original incluía un Auth Secret en el cliente Flutter. No distribuyas ese secreto en una aplicación móvil, de escritorio o web, ni lo recuperes en la aplicación desde una configuración remota. El tutorial ejecutable se ha sustituido por el flujo de trabajo histórico y las limitaciones específicas del paquete que se detallan a continuación. Es obligatorio mantener el secreto en un backend de confianza; ocultarlo en una aplicación no lo hace privado.
Instalación
La versión que se presentó aquí era 0.2.0. Al momento de esta actualización,
el registro de paquetes muestra 0.2.1 como la última versión publicada;
no contiene la versión 1.0.0 que antes aparecía en el ejemplo de dependencias
de este artículo. El paquete publicado 0.2.1 declara la restricción
>=2.12.0 <3.0.0 para el SDK de Dart y una dependencia del SDK de Flutter. No se puede
añadir sin modificaciones a un proyecto que utilice Dart 3.
La ruta de importación de la biblioteca es package:transloadit/transloadit.dart. Estos detalles identifican
el paquete histórico; no son una recomendación para instalar una versión anterior en un proyecto
Flutter actual. Consulta los metadatos del paquete publicado al
investigar una integración existente.
Uso del SDK
La clase del cliente publicado es TransloaditClient, en lugar de la clase
Transloadit utilizada en el ejemplo original. El cliente agrupa operaciones como
crear Assemblies, consultar su estado y gestionar Templates para que el código que lo utiliza no
tenga que construir cada solicitud HTTP manualmente.
Sin embargo, el constructor 0.2.1 requiere un
authSecret, y su implementación de solicitudes firma los parámetros localmente.
No ofrece ningún callback público para firmas generadas en el servidor. Simplemente eliminar el
secreto del constructor, pasar una cadena vacía o añadir una URL de backend no convierte este
paquete en una integración segura de firma para aplicaciones móviles. Esta limitación también se
aplica al flujo de trabajo de 0.2.0 descrito en el anuncio.
Una integración para producción necesita una vía diferente para las solicitudes: tu backend debe autenticar al usuario, autorizar la subida y controlar las instrucciones de procesamiento, los destinos, los límites y la caducidad. Puede crear la Assembly por sí mismo o proporcionar parámetros aprobados de corta vigencia y una firma a un cliente capaz de enviarlos sin cambios. Consulta nuestra guía de Signature Authentication y la API de creación de Assemblies para conocer ese protocolo. Se trata de una alternativa de arquitectura, no de una función que ofrezca este paquete de Flutter.
Crear una Assembly
El tutorial original redimensionaba una imagen local a 400 píxeles de ancho. Su secuencia sigue siendo útil para entender cómo estaba organizado el SDK:
- Llama al método
newAssemblydel cliente para obtener unTransloaditAssembly. Este reúne los archivos y los Steps antes de enviar la solicitud. - Adjunta la imagen de ejemplo,
cat.jpg, conaddFile. El paquete publicado acepta unFiley encapsula su ruta en unXFilepara el cliente del protocolo tus. - Añade un Step llamado
resizeque utilice el Robot/image/resizey un valor de 400 parawidth. Esta es la instrucción de procesamiento de la imagen, independiente de la transferencia de sus bytes. - Envía la solicitud con
createAssembly. El paquete primero crea la Assembly y utiliza su URL de subida mediante el protocolo tus para transferir archivos. - Usa
onProgresspara el progreso de la transferencia yonCompletepara la subida completada de un archivo. En este flujo de trabajo, completar la subida es independiente de completar el procesamiento; un callback de subida por sí solo no confirma que la imagen redimensionada esté lista. - Lee el
TransloaditResponsedevuelto medianteresponse.data['ok'], en lugar de acceder por índice al propio objeto de respuesta.ASSEMBLY_COMPLETEDindica que el procesamiento se completó correctamente. El paquete también puede devolver una Assembly cancelada o abortada, y los errores requieren un tratamiento específico.
Estos detalles de la API explican el flujo de trabajo de la beta sin presentar el método inseguro de firma en el lado del cliente como una receta actual para subir archivos. Cualquier sustituto debe preservar la distinción entre el progreso de la transferencia y los resultados del procesamiento, manteniendo la autorización y los secretos en el backend.
¿Qué sigue?
El anuncio originalmente remitía a nuestra serie sobre una aplicación de recetas en Flutter como un ejemplo más amplio. Ese tutorial histórico también distribuía credenciales mediante configuración remota, por lo que no debe seguirse como guía de implementación segura. Al diseñar una nueva integración, empieza por las referencias sobre autenticación y Assemblies indicadas anteriormente.
Para consultar el historial de implementación de la beta y su sistema de seguimiento de incidencias, visita el repositorio del SDK de Flutter. La invitación a contribuir sigue abierta: una integración de cliente que acepte parámetros autorizados generados en el servidor necesitaría su propia implementación y verificación antes de que pudiéramos recomendarla aquí.
