Salvando arquivos de resultado
Exemplo de Assembly Status JSON
Depois do redimensionamento de imagem de Meu primeiro app, o Step
crop_thumbed produz uma imagem 1500x500. Este trecho
ilustrativo do Assembly Status JSON (English) mostra os campos necessários para
identificar e salvar esse resultado. Outros campos do status foram omitidos; os IDs e as URLs de
exemplo serão diferentes na sua resposta real.
{
"assembly_id": "7828446e5acd4aa996dce3455ec914e9",
"ok": "ASSEMBLY_COMPLETED",
"uploads": [
{
"id": "a30bd0776e7f4ac3817b056d102e8219",
"name": "joe-gardner-149699.jpg",
"ssl_url": "https://temporary-files.example/upload.jpg"
}
],
"results": {
"crop_thumbed": [
{
"id": "b8d12f6c517541ca86bf50c537cedb27",
"original_id": "a30bd0776e7f4ac3817b056d102e8219",
"name": "joe-gardner-149699.jpg",
"ssl_url": "https://temporary-files.example/resized.jpg",
"meta": {
"width": 1500,
"height": 500
}
}
]
}
}
Como você pode ver, a Transloadit fornece os locais finais e os metadados de:
- todos os arquivos enviados por upload - na chave
uploads - todos os arquivos de resultado produzidos - na chave
results
Cada objeto de arquivo contém metadados e também um ssl_url que aponta para o
resultado. Se você usou um dos nossos Robots de exportação (English), esses
locais vão refletir o armazenamento que você especificou, como o seu bucket S3. Caso contrário, o
local é uma URL temporária que será removida após 24 horas (English).
As URLs temporárias servem apenas para baixar os arquivos uma vez para o seu próprio armazenamento. Nunca compartilhe essas URLs com usuários finais nem as use em produção. Veja as restrições do armazenamento temporário (English) para conhecer limitações importantes de uso.
Dependendo da sua integração, você pode:
- Processar os resultados localmente, onde você faz a requisição,
- Fazer com que os resultados sejam adicionados a um formulário e enviados para o seu backend, ou
- (Com o Async Mode) Deixar a Transloadit enviar o
Assembly Status JSON (English) para a sua
notify_url, que você pode então usar para salvar registros no seu banco de dados.
Há um exemplo disso na página de Webhooks.
Exibindo arquivos de resultado para os seus usuários finais
Depois de salvar os arquivos em um armazenamento persistente e de gravar no seu banco de dados os metadados que forem úteis para o seu app, você pode servi-los aos seus usuários. Substitua a URL de exemplo abaixo pela URL no seu próprio armazenamento para exibir a imagem recortada:
<img
alt="Resized uploaded image"
src="https://your-storage.example/resized.jpg"
/>
Se você estiver lidando com vídeo, pode dar uma olhada em players como HLS.js, Plyr ou indigo-player, que também têm suporte a HTTP live streaming (English) e MPEG-DASH (English).
Ao salvar resultados do processamento de arquivos, não confie na ordem deles
Quando os seus resultados de codificação estiverem prontos e a Transloadit fizer um POST para a sua URL de resultado ou para a sua URL de Assembly Notification, por favor não confie na ordem correta dos resultados.
Imagine que você tem dois Steps do
🤖/image/resize (English) no seu
Template que fazem use do Step
:original. Assim:
{
"steps": {
"high": {
"use": ":original",
"robot": "/image/resize",
"width": 500,
"height": 500
},
"low": {
"use": ":original",
"robot": "/image/resize",
"width": 200,
"height": 200
}
}
}
Quando você faz upload de 30 fotos com este Template, o
JSON da Assembly resultante contém dois arrays de
resultados: "results" -> "high" e "results" -> "low". Mas a ordem das imagens
dentro desses arrays não é a mesma! O primeiro resultado de "high" pode ser
derivado da 15ª foto enviada por upload, enquanto o primeiro resultado do array
"low" pode ser derivado da 10ª foto enviada por upload.
Se você precisar relacionar os resultados de codificação aos uploads correspondentes (e é bem
provável que precise), por favor relacione-os pela propriedade id das
entradas do array "uploads" e pela propriedade original_id
das entradas dos seus diversos arrays de resultados.
Armazene os arquivos originalmente enviados por upload
Armazenar não apenas os arquivos de resultado codificados, mas também os arquivos que os seus usuários enviaram originalmente por upload, dá a você a chance de recodificá-los mais tarde em formatos diferentes, conforme os seus requisitos mudam. Se você não os armazenar, eles serão perdidos para sempre, porque pedir que os seus usuários façam upload deles de novo provavelmente não é uma opção.
Armazene quaisquer metadados
Além do que foi dito acima, tenha em mente que as Assemblies são efêmeras. A Transloadit remove os registros após 90 dias, então, se você quiser guardar algum metadado contido neles, deve importá-lo para o seu armazenamento de dados.