Apresentando o Robot /dropbox/store para exportações fáceis

É hora do Re-Loadit!
Este post é o primeiro de uma série que estamos chamando de Re-loadit. Nesta série, vamos abordar vários recursos da Transloadit que ainda não receberam uma apresentação adequada aos nossos usuários.
Assim como em outras apresentações de Robot, vamos mostrar alguns exemplos, explicar a principal funcionalidade do Robot e oferecer algumas dicas sobre como começar. Espero que você goste de aprender mais sobre como aproveitar a variedade de recursos da Transloadit.
O Robot /dropbox/store
Com a popularidade crescente do armazenamento em nuvem, parece que guardar arquivos apenas no seu próprio disco pode em breve seguir o mesmo caminho do celular de flip. Com impressionantes 500 milhões de contas de usuários registradas, o Dropbox se destaca como um dos serviços de armazenamento em nuvem mais conhecidos do mercado. Queremos garantir que nossos usuários tenham liberdade para integrar o serviço diretamente aos seus Templates da Transloadit.
Foi por isso que lançamos o Robot /dropbox/store, que faz parte da família de Robots da Transloadit desde maio deste ano.

O que ele pode fazer?
A funcionalidade dele não poderia ser mais simples: o Robot /dropbox/store exporta todos os resultados de codificação da sua Assembly para um local de armazenamento do Dropbox à sua escolha. Um bom exemplo para mostrar as capacidades dele é como esse Robot pode ajudar você a organizar melhor documentos digitais importantes, como contracheques ou faturas.
Muitas empresas disponibilizam suas faturas como uma página HTML. Arquivar esses documentos corretamente, algo obrigatório se você mesmo tem uma empresa, pode ser uma tarefa trabalhosa se for feito à mão. Pessoalmente, gosto de guardar minhas faturas no Dropbox para tê-las todas em um único local seguro. Então, neste exemplo, vou mostrar como você pode usar a Transloadit para “imprimir” páginas HTML automaticamente e armazená-las como PDFs em um Dropbox.
Criando a Assembly
Antes de começar a criar minha Assembly, preciso obter meu token de acesso do Dropbox. Ele é necessário para que nossas Assemblies usem a API do Dropbox. Para gerar meu token de acesso, preciso ir até a seção para desenvolvedores do Dropbox. Recomendo fortemente que você armazene seu token de acesso nas Credenciais de Template aqui na Transloadit. Isso mantém sua chave de acesso criptografada em nosso banco de dados e ajuda a impedir que usuários mal-intencionados tenham acesso a ela. Como você pode ver na captura de tela abaixo, dei à minha Credencial do Dropbox o nome my_invoice_uploader. Vou precisar desse nome mais tarde, quando começar a criar minha Assembly.

Estas são as Assembly Instructions que usei depois de configurar corretamente meu token de acesso:
{
"steps": {
"screenshot": {
"robot": "/html/convert",
"format": "pdf",
"url": "https://demos.transloadit.com/b2-invoice-example/2018-11-29-backblaze-tyler-invoice.htm",
"width": 1024
},
"exported": {
"robot": "/dropbox/store",
"use": "screenshot",
"credentials": "my_invoice_uploader",
"path": "invoices/${file.original_basename}.${file.ext}"
}
}
}
Tudo aqui é bem direto. O Robot /html/convert
faz capturas de tela de uma página HTML fornecida. Usando o parâmetro url, posso
buscar uma página diretamente pela URL dela. Em seguida, o parâmetro format determina o formato da
captura de tela, como png, mas neste caso escolho pdf. Por fim, o parâmetro width
é definido como 1024. A altura da captura de tela é então ajustada automaticamente de acordo com
esse valor para manter a proporção desejada.
Ah, e caso você estivesse começando a se preocupar, alteramos os números daquela fatura HTML de exemplo da Backblaze, então eles não fazem mais nenhum sentido! 😄
No próximo Step, exporto a captura de tela em PDF com o Robot
/dropbox/store. O parâmetro credentials
acessa o token de acesso do Dropbox que guardei nas minhas Credenciais de Template, com o
nome my_invoice_uploader. Em seguida, o parâmetro path salva o PDF exportado em uma pasta chamada
invoices no meu armazenamento do Dropbox e dá a cada arquivo o seu nome original. Se colisões de
nomes forem uma preocupação, você pode adicionar mais
Assembly Variables a esse caminho, como um
hash MD5 (${file.md5hash}) ou o ${unique_prefix}.
Para testar meu Template recém-criado, executo o seguinte código Node.js, passando como argumento a página que desejo. Fique à vontade para testar também.
const { Transloadit } = require('transloadit')
const transloadit = new Transloadit({
authKey: process.env.TRANSLOADIT_AUTH_KEY,
authSecret: process.env.TRANSLOADIT_SECRET_KEY,
})
const options = {
waitForCompletion: true,
params: {
steps: {
screenshot: {
robot: '/html/convert',
format: 'pdf',
url: process.argv[2],
width: 1024,
},
exported: {
robot: '/dropbox/store',
use: 'screenshot',
credentials: 'my_invoice_uploader',
path: 'invoices/${file.id}.${file.ext}',
},
},
},
}
transloadit.createAssembly(options)
.then((result) => {
console.log({ result })
})
.catch((err) => {
console.error(err)
process.exitCode = 1
})
Os resultados
Ao verificar meu Dropbox, parece que tudo foi executado com sucesso. Minha fatura está bem acomodada como PDF no caminho especificado 💖

Espero que este post tenha demonstrado o quanto o Robot /dropbox/store é poderoso e com que facilidade ele pode ser combinado com os outros recursos oferecidos pela Transloadit. Isso é tudo para a estreia da série Re-loadit. Espero que você já esteja aguardando a próxima parte!