Migrar de Filestack a Transloadit
Filestack combina la selección de archivos, la subida, las transformaciones, los flujos de trabajo y el almacenamiento. Con Transloadit, Uppy se encarga de la selección en el navegador y los Robots se encargan del procesamiento de archivos. Define un flujo de trabajo compatible en un Template y luego usa un SDK, Uppy o la REST API para crear Assemblies. Revisa individualmente las tareas que usa tu aplicación; el mapeo que aparece a continuación no promete una paridad completa de funciones.
Mapa de migración
| Concepto de Filestack | Equivalente en Transloadit |
|---|---|
| Selector de archivos | Uppy con Transloadit |
| Subida | 🤖/upload/handle |
| Tarea de transformación | Step de Robot en un Template |
| Conversión/redimensionado de imágenes | 🤖/image/resize |
| Vista previa de documentos | 🤖/document/thumbs o 🤖/file/preview (English) (beta) |
| Análisis de virus | 🤖/file/virusscan |
| Flujo de trabajo | Template de Transloadit |
| Alias de almacenamiento | Credenciales de terceros más un Robot de exportación |
| Webhook | Assembly Notification |
Crear un Template para cada flujo de trabajo
Este Template comprueba el tipo MIME detectado, crea una miniatura de imagen o una miniatura de la
primera página del PDF, y almacena los originales aceptados y las vistas previas. Los demás tipos MIME
detienen la Assembly con un error. Esto es un filtrado por tipo, no un análisis de malware; añade
/file/virusscan si tu flujo de trabajo lo requiere:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"accepted_files": {
"use": ":original",
"robot": "/file/filter",
"accepts": [["${file.mime}", "regex", "^(image/[^/]+|application/pdf)$"]],
"error_on_decline": true
},
"images": {
"use": "accepted_files",
"robot": "/file/filter",
"accepts": [["${file.mime}", "regex", "^image/"]]
},
"pdfs": {
"use": "accepted_files",
"robot": "/file/filter",
"accepts": [["${file.mime}", "=", "application/pdf"]]
},
"image_thumb": {
"use": "images",
"robot": "/image/resize",
"width": 600,
"height": 600,
"resize_strategy": "fit",
"format": "webp",
"result": true
},
"document_thumb": {
"use": "pdfs",
"robot": "/document/thumbs",
"format": "jpg",
"page": 1,
"width": 600,
"resize_strategy": "fit",
"result": true
},
"exported": {
"use": ["accepted_files", "image_thumb", "document_thumb"],
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "filestack-import/${unique_prefix}/${file.url_name}",
"url_prefix": "https://cdn.example.com/",
"acl": "bucket-default"
}
}
}
Los dos filtros de enrutamiento usan tipos MIME para mantener las imágenes y los PDF en ramas de vista previa separadas. Los originales rechazados nunca entran en el Step de exportación. Una Assembly no es una transacción: los archivos aceptados que ya se exportaron no se revierten si otro archivo falla. Ignorar los errores suprime los fallos; no sustituye al enrutamiento ni a la validación.
Configura tu CDN para que lea la raíz del bucket; url_prefix solo cambia las URL
devueltas. acl: "bucket-default" no envía ninguna ACL de
objeto; configura el acceso mediante la política de tu bucket y el acceso de origen de tu CDN. Después
de ASSEMBLY_COMPLETED, lee los originales aceptados en results.accepted_files y las
vistas previas en results.image_thumb y results.document_thumb.
La exportación añade o actualiza entradas bajo los Steps indicados en su parámetro
use, salvo que ese Step establezca explícitamente
result: false. Conserva únicamente las entradas
con is_temp_url: false. Las URL temporales de Transloadit caducan después de 24 horas;
consulta cómo guardar los resultados de conversión.
Sustituir la selección de archivos
Para las integraciones en el navegador, sustituye el selector de archivos de Filestack por
Uppy. Uppy puede seleccionar archivos locales, admitir subidas mediante
arrastrar y soltar y conectar fuentes remotas. El Transloadit Plugin envía los archivos a una Assembly
usando tu Template. Activa waitForEncoding para recibir los resultados de procesamiento
finalizados en el navegador, o establece notify_url en tu solicitud firmada de
Assembly y gestiona las Assembly Notifications en tu backend. Verifica
las firmas de las notificaciones y exige que se complete correctamente antes de actualizar tu base de
datos.
Importar las URL de Filestack existentes
Si los handles existentes de Filestack se resuelven en URL HTTPS, mígralos con 🤖/http/import:
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "${fields.filestack_url}"
},
"preview": {
"use": "imported",
"robot": "/file/preview",
"result": true
},
"exported": {
"use": ["imported", "preview"],
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "filestack-backfill/${unique_prefix}/${file.url_name}",
"acl": "bucket-default"
}
}
}
Selecciona valores filestack_url autorizados a partir del inventario de recursos de tu
backend. /file/preview está en beta y recurre a un icono genérico de tipo de archivo
cuando no puede generar una miniatura del contenido. Ejecuta trabajos de relleno retroactivo acotados;
/http/import también acepta un array de URL. Conserva los handles y las URL de origen
hasta que se verifiquen el acceso y la calidad de la exportación completada. Los objetos privados de S3
necesitan una descarga autorizada o tu CDN configurado. El Template de importación devuelve los
archivos exportados en results.imported y results.preview.
Lista de verificación
- Inventaría el uso del selector de archivos de Filestack y las tareas de los flujos de trabajo.
- Convierte cada flujo de trabajo en un Template de Transloadit.
- Traslada las credenciales de almacenamiento a las credenciales de terceros.
- Sustituye el código del selector de archivos por Uppy y el Transloadit Plugin.
- Guarda las URL de almacenamiento exportadas de las Assembly Notifications.
- Rellena retroactivamente los archivos existentes de Filestack con
/http/import.