Lanzamiento del SDK oficial de Go para una mejor integración
Este es nuestro anuncio de lanzamiento de 2014. Sus ejemplos muestran la API original del SDK; para nuevas integraciones, sigue en su lugar la documentación del SDK de Go actual.
Hoy, nuestro equipo se complace en anunciar el lanzamiento del SDK oficial de Go de Transloadit. Si no conoces Go, es un lenguaje de código abierto realmente potente que crece rápido. Aunque nuestra API está escrita en Node.js, hemos usado Go internamente con mucho gusto para escalar y para utilidades de sistema. Por eso, siempre buscamos más formas de aprovechar el poder de este lenguaje tan divertido.

Aunque ya era posible comunicarse con nuestra REST API desde cualquier lenguaje, esperamos que este lanzamiento facilite más que nunca que los desarrolladores interesados en Go integren nuestros servicios de importación de archivos y encoding en sus propios proyectos.
El código y la documentación están en GitHub y
Godoc, pero también queremos darte una idea de
cómo se podría usar nuestro SDK para redimensionar una imagen lol_cat.jpg a 75×75 píxeles.
Después de un rápido go get github.com/transloadit/go-sdk, así es como podría verse el código de
integración:
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)
Aunque esto pueda parecer mucho trabajo para simplemente redimensionar una imagen, conviene señalar que este mismo fragmento también podría usarse para optimizar video para tablets, convertir a HLS con el fin de preparar los videos de tu aplicación para enviarlos a la App Store, generar vistas previas en gif animado de documentos y trabajar con todas las demás conversiones geniales (English) que los Robots de Transloadit pueden hacer por ti.
Como extra, este SDK incluye una función integrada que te permite crear automáticamente Assemblies a partir de un directorio local. No solo subirá todos los archivos a Transloadit y los convertirá usando los Steps que hayas indicado, sino que también descargará de inmediato todos los resultados. Además, esta función puede monitorear un directorio en busca de cambios y procesarlos automáticamente a medida que ocurren. Veamos el código necesario para eso:
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)
Ahora puedes simplemente soltar archivos en el directorio ./input y los resultados convertidos se
guardarán en ./output. Bastante práctico, ¿verdad? 😄
Hasta cierto punto, sí. Pero todavía no tan práctico como quisiéramos, porque aún tendrás que escribir unas cuantas líneas de código para sacarle provecho.
Por eso hemos colaborado con el joven y talentoso Acconut no solo para crear este SDK, sino también para crear una herramienta CLI basada en él que te permite usar Transloadit en tus propios servidores / estaciones de trabajo sin escribir una sola línea de código. ¡Mantente atento a una publicación de blog aparte que le dará a esta herramienta la atención que merece!
Si tienes algún comentario, nos encantaría saber de ti, ya sea en los issues de GitHub del proyecto, en la sección de comentarios de aquí, o en nuestra bandeja de entrada en hello@transloadit.com.
Por último, queremos dar un reconocimiento a nuestro emérito Felix, que hizo una revisión exhaustiva de este proyecto. 😄
