Python + Transloadit
Faça upload e processe um arquivo local com o pytransloadit, o cliente Python com manutenção ativa para a REST API da Transloadit.
Receita executável
Criar a integração
O script lê um caminho de arquivo da linha de comando, faz o upload do arquivo, redimensiona a imagem, aguarda a conclusão e imprime o Assembly ID.
- Crie um ambiente virtual e instale o pytransloadit.
- Defina TRANSLOADIT_KEY e TRANSLOADIT_SECRET no ambiente do processo.
- Execute python process_image.py path/to/photo.jpg.
Instalar
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade 'pytransloadit>=2,<3'process_image.py
import os
import sys
from transloadit import client
transloadit = client.Transloadit(
os.environ['TRANSLOADIT_KEY'],
os.environ['TRANSLOADIT_SECRET'],
)
assembly = transloadit.new_assembly()
with open(sys.argv[1], 'rb') as input_file:
assembly.add_file(input_file)
assembly.add_step('resize', '/image/resize', {
'width': 1200,
'height': 1200,
'resize_strategy': 'fit',
})
response = assembly.create(retries=5, wait=True)
if response.data.get('error'):
raise RuntimeError('Media processing failed')
print(response.data['assembly_id'])Autenticação
- Leia a Auth Key e o Auth Secret da Transloadit nas variáveis de ambiente do servidor e passe ambos para o SDK oficial de Python.
- O SDK assina as requisições quando o segredo é fornecido; nunca faça commit de nenhuma das credenciais no controle de versão.
- Use um Template fixo quando usuários da aplicação escolherem arquivos ou valide cada Step dinâmico antes de criar uma Assembly.
Limitações e observações operacionais
- wait=True bloqueia o processo até que a Assembly termine. Para web workers e tarefas de mídia de longa duração, armazene o Assembly ID e acompanhe a conclusão de forma assíncrona.
- A versão 2 exige Python 3.12 ou mais recente. O comando de instalação seleciona explicitamente a versão 2 em vez de instalar silenciosamente o SDK 1.x mais antigo no Python 3.9 a 3.11.
- A opção retries limita as novas tentativas de uploads retomáveis e da criação de Assemblies ou da consulta de status sujeitas a limite de taxa; ela não oferece idempotência no nível da aplicação. Com wait=True, quando as novas tentativas de consulta de status se esgotam, é lançada uma exceção AssemblyPollingError, mesmo que a Assembly ainda possa estar em execução. Use os detalhes de recuperação da exceção para acompanhar a Assembly existente em vez de enviar o trabalho novamente às cegas.
Mais integrações