Lançamento do SDK oficial em Go para integração aprimorada
Este é o nosso anúncio de lançamento de 2014. Os exemplos mostram a API original do SDK; para novas integrações, siga a documentação atual do SDK em Go.
Hoje, nossa equipe tem o prazer de anunciar o lançamento do SDK oficial da Transloadit em Go. Se você não conhece Go, trata-se de uma linguagem de código aberto muito poderosa e que cresce rápido. Embora nossa API seja escrita em Node.js, usamos Go internamente, com muita satisfação, para escalabilidade e utilitários de sistema. Por isso, estamos sempre procurando novas formas de aproveitar o poder dessa linguagem tão divertida.

Embora já fosse possível se comunicar com nossa REST API usando qualquer linguagem, esperamos que este lançamento torne mais fácil do que nunca para desenvolvedores interessados em Go integrar nossos serviços de importação e codificação de arquivos aos próprios projetos.
O código e a documentação estão disponíveis no GitHub e no
Godoc, mas também queremos dar uma ideia de como nosso SDK pode
ser usado para redimensionar uma imagem lol_cat.jpg para 75×75 pixels.
Depois de um rápido go get github.com/transloadit/go-sdk, o código de integração poderia ficar
assim:
import "github.com/transloadit/go-sdk"
import "fmt"
// Create client
options := transloadit.DefaultConfig
options.AuthKey = "YOUR_TRANSLOADIT_KEY"
options.AuthSecret = "YOUR_TRANSLOADIT_SECRET"
client, err := transloadit.NewClient(options)
if err != nil {
panic(err)
}
// Initialize new assembly
assembly := client.CreateAssembly()
// Add file to upload
err = assembly.AddFile("./lol_cat.jpg")
if err != nil {
panic(err)
}
// Add Instructions, e.g. resize image to 75x75px
assembly.AddStep("resize", map[string]interface{}{
"robot": "/image/resize",
"width": 75,
"height": 75,
"resize_strategy": "crop",
})
// Wait until Transloadit is done processing all uploads
// and is ready for you to download the results
assembly.Blocking = true
// Start the upload
info, err := assembly.Upload()
if err != nil {
panic(err)
}
fmt.Printf("You can view the result at: %s\n", info.Results["resize"][0].Url)
Embora isso possa parecer muito trabalho só para redimensionar uma imagem, vale lembrar que esse mesmo trecho também poderia ser usado para otimizar vídeos para tablets, converter para HLS a fim de preparar os vídeos do seu app para envio à App Store, gerar pré-visualizações animadas em GIF de documentos e trabalhar com todas as outras conversões incríveis (English) que os Robots da Transloadit podem fazer por você.
Como bônus, este SDK inclui um recurso integrado que permite criar automaticamente Assemblies a partir de um diretório local. Ele não só faz o upload de todos os arquivos para a Transloadit e os converte usando os Steps que você forneceu, como também baixa imediatamente todos os resultados. Além disso, essa função pode monitorar alterações em um diretório e processá-las automaticamente assim que ocorrem. Vamos dar uma olhada no código necessário para isso:
options := &transloadit.WatchOptions{
// Use Encoding instructions as stored in a Template in your Transloadit Account
TemplateId: "02a8693053cd11e49b9ba916b58830db",
// The directory which the files will be taken from
Input: "./input",
// The directory where the results are downloaded into
Output: "./output",
// Watch the input directory for changes
Watch: true,
// Put the original files from the input directory
// into the output directory (recommended as the input dir gets cleared)
Preserve: true,
}
watcher := client.Watch(options)
Agora basta colocar arquivos no diretório ./input e os resultados convertidos serão salvos
em ./output. Bem prático, não é? 😄
Até certo ponto, sim. Mas ainda não tão prático quanto gostaríamos, porque você ainda precisa escrever algumas linhas de código para aproveitar isso.
É por isso que colaboramos com o jovem talento Acconut não só para criar este SDK, mas também para desenvolver uma ferramenta de CLI baseada nele, que permite usar a Transloadit nos seus próprios servidores / estações de trabalho sem escrever uma única linha de código. Fique de olho em um post separado no blog que vai dar a essa ferramenta a atenção que ela merece!
Se você tiver algum feedback, adoraríamos ouvir você, seja nas issues do projeto no GitHub, na seção de comentários aqui ou na nossa caixa de entrada em hello@transloadit.com.
Por fim, queremos fazer um agradecimento especial ao nosso membro emérito Felix, que fez uma revisão minuciosa deste projeto. 😄
