Ruby + Transloadit
Crie uma Assembly assinada a partir de um processo Ruby com a gem oficial transloadit e um Template fixo.
Receita executável
Criar a integração
O script envia um arquivo local para um Template fixo, faz polling com um limite finito e imprime a resposta final.
- Instale a gem transloadit e crie um Template da Transloadit.
- Defina TRANSLOADIT_KEY, TRANSLOADIT_SECRET e TRANSLOADIT_TEMPLATE_ID.
- Execute ruby process_media.rb path/to/file.mp4.
Instalar
gem install transloaditprocess_media.rb
require 'transloadit'
transloadit = Transloadit.new(
key: ENV.fetch('TRANSLOADIT_KEY'),
secret: ENV.fetch('TRANSLOADIT_SECRET')
)
assembly = transloadit.assembly(
template_id: ENV.fetch('TRANSLOADIT_TEMPLATE_ID')
)
response = File.open(ARGV.fetch(0), 'rb') do |file|
assembly.create!(file)
end
response.reload_until_finished!(tries: 300)
puts responseAutenticação
- Leia a Auth Key e o Auth Secret do Workspace e o Template ID fixo nas variáveis de ambiente do servidor.
- A gem oficial de Ruby assina as requisições à API quando inicializada com o Auth Secret.
- Mantenha as credenciais fora de ambientes Ruby entregues ao navegador e não permita que chamadores não confiáveis selecionem Steps arbitrários.
Limitações e observações operacionais
- create! retorna depois que a Assembly é criada e o upload é aceito, não necessariamente depois que o processamento termina.
- reload_until_finished! consulta o status repetidamente (polling). Tarefas em segundo plano devem definir um valor finito para tries e persistir o Assembly ID para reconciliação posterior.
- Para uploads pelo navegador em uma aplicação Rails, use o Uppy ou o SDK para Rails em vez de fazer proxy de arquivos grandes por um controller.
Mais integrações