Migrar de Filestack a Transloadit
Filestack combina la selección, la subida, las transformaciones, los flujos de trabajo y el almacenamiento. Con Transloadit, Uppy se encarga de la selección de archivos 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. Comprueba por separado cada tarea que usa tu aplicación; la siguiente correspondencia no promete una paridad completa de funciones.
Mapa de migración
| Concepto de Filestack | Equivalente en Transloadit |
|---|---|
| Selector | Uppy con Transloadit |
| Subida | 🤖/upload/handle |
| Tarea de transformación | Step de Robot en un Template |
| Conversión o redimensionamiento de imágenes | 🤖/image/resize |
| Vista previa de documentos | 🤖/document/thumbs o 🤖/file/preview (English) (beta) |
| Análisis antivirus | 🤖/file/virusscan |
| Flujo de trabajo | Template de Transloadit |
| Alias de almacenamiento | Credenciales de terceros más un Robot de exportación |
| Webhook | Assembly Notification |
Crea un Template para cada flujo de trabajo
Este Template comprueba el tipo MIME detectado, crea una miniatura de la 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.
Registra los objetos de almacenamiento que escribe cada intento de migración retroactiva. Antes de reintentar una Assembly fallida, contrasta sus exportaciones parciales con tu registro o elimínalas para que los reintentos no dejen objetos duplicados o huérfanos. No publiques los intentos fallidos en tu aplicación, aunque algunos archivos se hayan exportado correctamente.
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 al origen de tu CDN. Después
de ASSEMBLY_COMPLETED, lee los originales aceptados desde results.accepted_files y
las vistas previas desde results.image_thumb y results.document_thumb. La
exportación añade o actualiza entradas bajo los Steps indicados en su parámetro
use, a menos que ese Step establezca explícitamente
result: false. Conserva solo 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.
Reemplaza la selección de archivos
En integraciones de navegador, reemplaza el selector de Filestack por
Uppy. Uppy puede seleccionar archivos locales, admitir subidas
mediante arrastrar y soltar, y conectar fuentes remotas. El plugin de Transloadit envía los archivos a
una Assembly usando tu Template. Activa waitForEncoding para recibir los resultados
finalizados del procesamiento 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 la Assembly se haya completado
correctamente antes de actualizar tu base de datos.
Importa las URL existentes de Filestack
Si los identificadores (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 los valores autorizados de filestack_url a partir del inventario de
activos 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 migración
retroactiva acotados; /http/import también acepta un array de URL. Conserva los
identificadores y las URL de origen hasta verificar el acceso y la calidad de la exportación
completada. Los objetos privados de S3 requieren una descarga autorizada o la CDN que hayas
configurado. El Template de importación devuelve los archivos exportados bajo
results.imported y results.preview.
Lista de comprobación
- Haz un inventario del uso del selector de Filestack y de las tareas de los flujos de trabajo.
- Convierte cada flujo de trabajo en un Template de Transloadit.
- Traslada las credenciales de almacenamiento a credenciales de terceros.
- Reemplaza el código del selector por Uppy y el plugin de Transloadit.
- Guarda las URL de almacenamiento exportadas a partir de las Assembly Notifications.
- Migra de forma retroactiva los archivos existentes de Filestack con
/http/import.