Migrar do Filestack para a Transloadit
O Filestack combina seleção de arquivos, upload, transformações, fluxos de trabalho e armazenamento. Com a Transloadit, o Uppy cuida da seleção de arquivos no navegador e os Robots cuidam do processamento de arquivos. Defina um fluxo de trabalho compatível em um Template e depois use um SDK, o Uppy ou a REST API para criar Assemblies. Verifique individualmente as tarefas que a sua aplicação usa; o mapeamento abaixo não promete paridade completa de recursos.
Mapa de migração
| Conceito do Filestack | Equivalente na Transloadit |
|---|---|
| Seletor de arquivos | Uppy com a Transloadit |
| Upload | 🤖/upload/handle |
| Tarefa de transformação | Step de Robot em um Template |
| Conversão/redimensionamento de imagens | 🤖/image/resize |
| Pré-visualização de documentos | 🤖/document/thumbs ou 🤖/file/preview (English) (beta) |
| Verificação antivírus | 🤖/file/virusscan |
| Fluxo de trabalho | Template da Transloadit |
| Aliases de armazenamento | Credenciais de terceiros mais um Robot de exportação |
| Webhook | Assembly Notification |
Crie um Template para cada fluxo de trabalho
Este Template verifica o tipo MIME detectado, cria uma miniatura da imagem ou uma miniatura da
primeira página do PDF e armazena os originais aceitos e as pré-visualizações. Outros tipos MIME
interrompem a Assembly com um erro. Isso é filtragem por tipo, não uma varredura de malware; adicione
/file/virusscan se o seu fluxo de trabalho exigir isso:
{
"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"
}
}
}
Os dois filtros de roteamento usam tipos MIME para manter imagens e PDFs em ramificações de pré-visualização separadas. Originais recusados nunca entram no Step de exportação. Uma Assembly não é uma transação: arquivos aceitos que já foram exportados não são revertidos se outro arquivo falhar. Ignorar erros suprime falhas; isso não substitui o roteamento nem a validação.
Acompanhe os objetos de armazenamento gravados por cada tentativa de preenchimento retroativo. Antes de tentar novamente uma Assembly que falhou, reconcilie ou exclua as exportações parciais dela para que as novas tentativas não deixem objetos duplicados ou órfãos. Não publique tentativas que falharam na sua aplicação, mesmo que alguns arquivos tenham sido exportados com sucesso.
Configure a sua CDN para ler a raiz do bucket; url_prefix altera apenas as URLs
retornadas. acl: "bucket-default" não envia nenhuma ACL de
objeto; configure o acesso pela política do seu bucket e pelo acesso à origem da CDN. Depois de
ASSEMBLY_COMPLETED, leia os originais aceitos em results.accepted_files e as
pré-visualizações em results.image_thumb e results.document_thumb.
O Step de exportação adiciona ou atualiza entradas sob os Steps nomeados no seu parâmetro
use, a menos que esse Step defina explicitamente
result: false. Persista apenas as entradas com is_temp_url: false. As
URLs temporárias da Transloadit expiram após 24 horas; consulte
como salvar resultados de conversão.
Substitua a seleção de arquivos
Em integrações no navegador, substitua o seletor do Filestack pelo Uppy.
O Uppy pode selecionar arquivos locais, receber uploads por arrastar e soltar e conectar fontes
remotas. O plugin Transloadit envia arquivos para uma Assembly usando o seu Template. Ative
waitForEncoding para receber os resultados de processamento concluídos no navegador
ou defina notify_url na sua requisição assinada da Assembly e trate as
Assembly Notifications no seu backend. Verifique as assinaturas das
notificações e exija a conclusão bem-sucedida antes de atualizar o seu banco de dados.
Importe URLs existentes do Filestack
Se os handles existentes do Filestack apontarem para URLs HTTPS, migre-os com 🤖/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"
}
}
}
Selecione valores filestack_url autorizados a partir do inventário de ativos do seu
backend. /file/preview está em beta e recorre a um ícone genérico de tipo de arquivo
quando não consegue gerar uma miniatura do conteúdo. Execute tarefas de preenchimento retroativo em
lotes limitados; /http/import também aceita um array de URLs. Mantenha os handles e
as URLs de origem até verificar o acesso e a qualidade da exportação concluída. Objetos privados do S3
exigem um download autorizado ou a CDN que você configurou. O Template de importação retorna os
arquivos exportados em results.imported e results.preview.
Lista de verificação
- Faça um inventário do uso do seletor do Filestack e das tarefas dos fluxos de trabalho.
- Converta cada fluxo de trabalho em um Template da Transloadit.
- Mova as credenciais de armazenamento para Credenciais de terceiros.
- Substitua o código do seletor pelo Uppy e pelo plugin Transloadit.
- Salve as URLs de armazenamento exportadas a partir das Assembly Notifications.
- Faça o preenchimento retroativo dos arquivos existentes do Filestack com
/http/import.