Lancement du SDK Go officiel pour une intégration améliorée
Ceci est notre annonce de lancement de 2014. Ses exemples présentent l’API d’origine du SDK ; pour les nouvelles intégrations, suivez plutôt la documentation actuelle du SDK Go.
Aujourd’hui, notre équipe a le plaisir d’annoncer le lancement du SDK Go officiel de Transloadit. Si vous ne connaissez pas Go, c’est un langage open source vraiment puissant qui connaît une croissance rapide. Même si notre API est écrite en Node.js, nous utilisons Go en interne avec plaisir pour la mise à l’échelle et les utilitaires système. Nous cherchons donc toujours de nouvelles façons de tirer parti de la puissance de ce langage agréable.

S’il était déjà possible de communiquer avec notre API REST depuis n’importe quel langage, nous espérons que cette version permettra plus facilement que jamais aux développeurs intéressés par Go d’intégrer nos services d’import et d’encodage de fichiers dans leurs propres projets.
Le code et la documentation sont disponibles sur GitHub et
Godoc, mais nous aimerions aussi vous donner un aperçu de la façon
dont notre SDK pourrait servir à redimensionner une image lol_cat.jpg en 75×75 pixels.
Après un rapide go get github.com/transloadit/go-sdk, voici à quoi pourrait ressembler le code
d’intégration :
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)
Même si cela peut sembler beaucoup d’efforts pour simplement redimensionner une image, notez que ce même extrait pourrait aussi servir à optimiser des vidéos pour tablettes, à les convertir en HLS afin de préparer les vidéos de votre application pour leur soumission à l’App Store, à générer des aperçus en GIF animé de documents, et à réaliser toutes les autres conversions géniales (English) que les Robots de Transloadit peuvent effectuer pour vous.
En bonus, ce SDK est livré avec une fonctionnalité intégrée qui vous permet de créer automatiquement des Assemblies à partir d’un répertoire local. Elle ne se contente pas d’envoyer tous les fichiers vers Transloadit et de les convertir à l’aide des Steps que vous avez fournis : elle télécharge aussi immédiatement tous les résultats. De plus, cette fonction peut surveiller les modifications d’un répertoire et traiter automatiquement les fichiers au fur et à mesure. Voyons le code nécessaire pour cela :
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)
Il vous suffit maintenant de déposer des fichiers dans le répertoire ./input, et les résultats convertis
seront ensuite enregistrés dans ./output. Plutôt pratique, n’est-ce pas ? 😄
Dans une certaine mesure, oui. Mais pas encore aussi pratique que nous le souhaiterions, car vous devrez toujours écrire quelques lignes de code pour en profiter.
C’est pourquoi nous avons collaboré avec Acconut, jeune talent prometteur, non seulement pour créer ce SDK, mais aussi pour développer un outil en ligne de commande basé sur ce SDK, qui vous permet d’utiliser Transloadit sur vos propres serveurs ou postes de travail sans écrire une seule ligne de code. Restez à l’écoute : un article de blog distinct accordera à cet outil l’attention qu’il mérite !
Si vous avez des retours, nous serions ravis de les recevoir dans les tickets GitHub du projet, dans la section des commentaires ici, ou dans notre boîte de réception à l’adresse hello@transloadit.com.
Enfin, nous tenons à saluer Felix, ancien membre de notre équipe, qui a effectué une revue technique approfondie de ce projet. 😄
