A Go Integration for Transloadit's file uploading and encoding service
Transloadit is a service that helps you handle file uploads, resize, crop and watermark your images, make GIFs, transcode your videos, extract thumbnails, generate audio waveforms, and so much more. In short, Transloadit is the Swiss Army Knife for your files.
This is a Go SDK to make it easy to talk to the Transloadit REST API.
go get github.com/transloadit/go-sdk
The Go SDK is confirmed to work with Go 1.11 or higher.
package main
import (
"context"
"fmt"
"github.com/transloadit/go-sdk"
)
func main() {
// Create client
options := transloadit.DefaultConfig
options.AuthKey = "YOUR_TRANSLOADIT_KEY"
options.AuthSecret = "YOUR_TRANSLOADIT_SECRET"
client := transloadit.NewClient(options)
// Initialize new assembly
assembly := transloadit.NewAssembly()
// Add a file to upload
assembly.AddFile("image", "/PATH/TO/FILE.jpg")
// Add Instructions, e.g. resize image to 75x75px
assembly.AddStep("resize", map[string]interface{}{
"robot": "/image/resize",
"width": 75,
"height": 75,
"resize_strategy": "pad",
"background": "#000000",
})
// Start the upload
info, err := client.StartAssembly(context.Background(), assembly)
if err != nil {
panic(err)
}
// All files have now been uploaded and the assembly has started but no
// results are available yet since the conversion has not finished.
// WaitForAssembly provides functionality for polling until the assembly
// has ended.
info, err = client.WaitForAssembly(context.Background(), info)
if err != nil {
panic(err)
}
fmt.Printf("You can view the result at: %s\n", info.Results["resize"][0].SSLURL)
}
For fully working examples on how to use templates, non-blocking processing and more, take a look at examples/
.
See Godoc for full API documentation.