Offizielles Go-SDK für bessere Integration veröffentlicht
Dies ist unsere Ankündigung zum Start im Jahr 2014. Die Beispiele zeigen die ursprüngliche SDK-API; für neue Integrationen folgen Sie stattdessen der aktuellen Go-SDK-Dokumentation.
Heute freut sich unser Team, das offizielle Transloadit Go SDK anzukündigen. Wenn Sie Go noch nicht kennen: Es handelt sich um eine wirklich leistungsstarke Open-Source-Sprache, die schnell wächst. Obwohl unsere API in Node.js geschrieben ist, setzen wir Go intern seit Langem gerne für Skalierung und Systemwerkzeuge ein. Deshalb suchen wir stets nach weiteren Möglichkeiten, die Stärken dieser unterhaltsamen Sprache zu nutzen.

Zwar war es schon bisher möglich, mit jeder beliebigen Sprache mit unserer REST API zu kommunizieren, doch wir hoffen, dass diese Veröffentlichung es Entwicklerinnen und Entwicklern mit Interesse an Go leichter denn je macht, unsere Dienste für Dateiimport & Encoding in ihre eigenen Projekte zu integrieren.
Code und Dokumentation finden Sie auf GitHub und
Godoc. Wir möchten Ihnen aber auch zeigen, wie sich unser SDK nutzen
lässt, um die Größe eines Bildes (lol_cat.jpg) auf 75×75 Pixel zu ändern.
Nach einem schnellen go get github.com/transloadit/go-sdk könnte der Integrationscode so aussehen:
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)
Das mag nach viel Aufwand für eine bloße Größenänderung eines Bildes aussehen. Man sollte jedoch bedenken, dass sich derselbe Codeausschnitt auch nutzen lässt, um Videos für Tablets zu optimieren, nach HLS zu konvertieren, um die Videos Ihrer App für die Einreichung im App Store vorzubereiten, animierte GIF-Vorschauen von Dokumenten zu erzeugen und mit allen weiteren coolen Konvertierungen (English) zu arbeiten, die die Robots von Transloadit für Sie erledigen.
Als Bonus enthält dieses SDK eine integrierte Funktion, mit der Sie automatisch Assemblies aus einem lokalen Verzeichnis erstellen können. Sie lädt nicht nur alle Dateien zu Transloadit hoch und konvertiert sie mit den Steps, die Sie angegeben haben, sondern lädt auch sofort alle Ergebnisse herunter. Darüber hinaus kann diese Funktion ein Verzeichnis auf Änderungen überwachen und diese automatisch verarbeiten, sobald sie auftreten. Werfen wir einen Blick auf den dafür nötigen Code:
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)
Jetzt legen Sie einfach Dateien im Verzeichnis ./input ab, und die
konvertierten Ergebnisse werden anschließend in ./output gespeichert. Ziemlich
praktisch, oder? 😄
Bis zu einem gewissen Grad ja. Aber noch nicht so praktisch, wie wir es gerne hätten, denn Sie müssen weiterhin ein paar Zeilen Code schreiben, um davon zu profitieren.
Deshalb haben wir mit dem jungen und talentierten Acconut zusammengearbeitet, um nicht nur dieses SDK zu entwickeln, sondern auf dessen Basis auch ein CLI-Werkzeug, mit dem Sie Transloadit auf Ihren eigenen Servern / Workstations nutzen können, ohne eine einzige Zeile Code zu schreiben. Freuen Sie sich auf einen eigenen Blogbeitrag, der diesem Werkzeug die Aufmerksamkeit widmet, die es verdient!
Wenn Sie Feedback haben, freuen wir uns, von Ihnen zu hören: in den GitHub-Issues des Projekts, hier im Kommentarbereich oder in unserem Posteingang unter hello@transloadit.com.
Zum Schluss möchten wir ein großes Dankeschön an unseren Emeritus Felix richten, der dieses Projekt gründlich geprüft hat. 😄
