Transloadit
Tarifs
  • Téléversements de fichiers
  • Importation de fichiers
  • Traitement par lots (English)
  • Encodage vidéo
  • Encodage audio
  • Traitement d’images
  • Traitement de documents
  • Intelligence artificielle
  • Filtrage et sécurité des fichiers
  • Catalogage de médias
  • Compression de fichiers
  • Évaluation de code
  • Exportation de fichiers
  • Smart CDN
  • Voir tous les services
  • Explorer les intégrations (English)
  • Explorer les démos interactives (English)
  • Uppy
  • TransloaditKit
  • SDK Android
  • SDK Node.js
  • SDK Python
  • SDK Ruby
  • SDK Go
  • SDK Java
  • SDK PHP
  • Zapier
  • Serveur MCP
  • Transloadit CLI (English)
  • Terraform
  • Essentiels
  • Bonnes pratiques (English)
  • FAQ
  • Robots (English)
  • API
  • Formats (English)
  • Créer votre première application
  • À propos de Transloadit
  • Comparatifs (English)
  • Projets open source
  • Témoignages
  • Carrières (English)
  • Sécurité (English)
  • Articles (English)
  • Actus dev (English)
  • Astuces dev
  • Presse (English)
  • Recherche (English)
  • Études de cas (English)
  • Solutions (English)
  • Guides (English)
  • Glossaire (English)
  • Juridique (English)
  • Outils (English)
  • Aider Coursera à apporter l’éducation à des millions de personnes à travers le monde (English)
  • Support Transloadit
  • Support open source
  • Accord de niveau de service (English)
EssentielsRobotsEN (English)FAQAPIFormatsEN (English)Bonnes pratiquesEN (English)
Premiers pas
  • Vue d’ensemble
  • Ma première application
  • Saving result filesEN (English)
Sujets
  • Assembly InstructionsEN (English)
  • Assembly VariablesEN (English)
  • Dynamic EvaluationEN (English)
  • TemplatesEN (English)
  • WebhooksEN (English)
  • Third party CredentialsEN (English)
  • Builtin TemplatesEN (English)
  • Resize StrategiesEN (English)
  • Assembly Execution ProgressEN (English)
  • WorkspacesEN (English)
  • AI AgentsEN (English)
  • Advanced use ParameterEN (English)
  • The ignore_errors ParameterEN (English)
Kits de développement logiciel
  • Vue d’ensemble
  • SDK Android
  • Navigateurs
  • Convex
  • cURL
  • SDK Go
  • SDK Java
  • Serveur MCP
  • Formulaire multipart
  • SDK Node.js
  • SDK PHP
  • SDK Python
  • SDK Ruby
  • Terraform
  • TransloaditKit
  • Intégration Zapier
Migration
  • Migrate from Cloudinary to TransloaditEN (English)
  • Migrate from Uploadcare to TransloaditEN (English)
  • Migrate from Mux to TransloaditEN (English)
  • Migrate from Filestack to TransloaditEN (English)

SDK Ruby

transloadit/ruby-sdk⁠

Notre gem Ruby vous permet d’automatiser le téléversement de fichiers via la REST API de Transloadit.

Si vous utilisez Ruby on Rails et cherchez plutôt à intégrer le navigateur pour gérer les téléversements de fichiers, nous proposons également un SDK Ruby on Rails EN (English) prêt à l’emploi.

Installation

gem install transloadit

Utilisation

Pour commencer, vous devez charger la gem « transloadit » :

$ irb
>> require 'transloadit'
=> true

Créez ensuite une instance Transloadit, qui conservera vos informations d’authentification et nous permettra d’envoyer des requêtes à l’API.

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

1. Redimensionner et stocker une image

Cet exemple montre comment créer une Assembly pour redimensionner une image et stocker le résultat sur Amazon S3⁠.

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

# First, we create two steps: one to resize the image to 320x240, and another to
# store the image in our S3 bucket.
resize = transloadit.step 'resize', '/image/resize',
  :width  => 320,
  :height => 240

store  = transloadit.step 'store', '/s3/store',
  :key    => 'YOUR_AWS_KEY',
  :secret => 'YOUR_AWS_SECRET',
  :bucket => 'YOUR_S3_BUCKET'

# Now that we have the steps, we create an assembly (which is just a request to
# process a file or set of files) and let Transloadit do the rest.
assembly = transloadit.assembly(
  :steps => [ resize, store ]
)

response = assembly.create! open('/PATH/TO/FILE.jpg')

# reloads the response once per second until all processing is finished
response.reload_until_finished!

if response.error?
  # handle error
else
  # handle other cases
  puts response
end
Note

La méthode submit! de l’Assembly est dépréciée et a été remplacée par create!. La méthode submit! reste disponible comme alias de create! pour assurer la rétrocompatibilité.

Lorsque la méthode create! retourne, le fichier a été téléversé, mais son traitement n’est peut-être pas encore terminé. Nous pouvons utiliser l’objet retourné pour vérifier si le traitement est terminé ou examiner d’autres attributs de la requête.

# returns the unique API ID of the assembly
response[:assembly_id] # => '9bd733a...'

# returns the API URL endpoint for the assembly
response[:assembly_url] # => 'http://api2.vivian.transloadit.com/assemblies/9bd733a...'

# checks how many bytes were expected / received by transloadit
response[:bytes_expected] # => 92933
response[:bytes_received] # => 92933

# checks if all processing has been finished
response.finished? # => false

# cancels further processing on the assembly
response.cancel! # => true

# checks if processing was successfully completed
response.completed? # => true

# checks if the processing returned with an error
response.error? # => false

Il est important de noter qu’aucune de ces requêtes n’est « en direct » (à l’exception de la méthode cancel!). Elles vérifient toutes la réponse fournie par l’API au moment où l’Assembly a été créée. Vous devez explicitement demander à l’Assembly de recharger ses résultats depuis l’API.

# reloads the response's contents from the REST API
response.reload!

# reloads once per second until all processing is finished, up to number of
# times specified in :tries option, otherwise will raise ReloadLimitReached
response.reload_until_finished! tries: 300 # default is 600

En général, vous utilisez la syntaxe d’accès par hash pour interroger n’importe quel attribut direct de la réponse. Les méthodes suffixées par un point d’interrogation offrent une manière plus lisible d’interroger l’état (par exemple, assembly.completed? plutôt que de vérifier le résultat de assembly[:ok]). Les méthodes suffixées par un point d’exclamation effectuent une requête en direct auprès de l’API HTTP de Transloadit.

2. Téléverser plusieurs fichiers

Vous pouvez transmettre plusieurs fichiers à la méthode create! afin de téléverser plus d’un fichier dans la même requête. Vous pouvez aussi passer un seul Step pour le paramètre steps, sans avoir à l’encapsuler dans un Array.

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

assembly = transloadit.assembly(steps: store)

response = assembly.create!(
  open('puppies.jpg'),
  open('kittens.jpg'),
  open('ferrets.jpg')
)

Vous pouvez également passer un tableau de fichiers à la méthode create!. Il suffit de développer le tableau avec l’opérateur splat *.

files = [open('puppies.jpg'), open('kittens.jpg'), open('ferrets.jpg')]
response = assembly.create! *files

3. Assembly parallèle

Transloadit vous permet d’exécuter plusieurs étapes de traitement en parallèle. Il vous suffit d’utiliser use sur d’autres Steps. En suivant leur exemple EN (English) :

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

encode = transloadit.step 'encode', '/video/encode', { ... }
thumbs = transloadit.step 'thumbs', '/video/thumbs', { ... }
export = transloadit.step 'store',  '/s3/store',     { ... }

export.use [ encode, thumbs ]

transloadit.assembly(
  :steps => [ encode, thumbs, export ]
).create! open('/PATH/TO/FILE.mpg')

Vous pouvez aussi indiquer à un Step d’utiliser le fichier original téléversé en passant le symbole :original au lieu d’un autre Step.

Consultez la documentation YARD pour en savoir plus sur l’utilisation de use⁠.

4. Créer une Assembly avec des Templates

Transloadit vous permet d’utiliser des Templates⁠ personnalisés pour les tâches d’encodage récurrentes. Pour les utiliser, procédez comme suit :

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

transloadit.assembly(
  :template_id => 'YOUR_TEMPLATE_ID'
).create! open('/PATH/TO/FILE.mpg')

Vous pouvez combiner vos Steps avec ce Template et même utiliser des variables. La documentation de Transloadit EN (English) propose quelques bons exemples à ce sujet.

5. Utiliser des champs

Transloadit vous permet de soumettre des valeurs de champs de formulaire que vous récupérerez dans la notification. C’est très pratique si vous souhaitez ajouter des métadonnées personnalisées supplémentaires au téléversement lui-même. Vous pouvez utiliser les champs comme suit :

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

transloadit.assembly(
  :fields => {
    :tag => 'some_tag_name',
    :field_name => 'field_value'
  }
).create! open('/PATH/TO/FILE.mpg')

6. URL de notification

Si vous souhaitez recevoir une notification à la fin du traitement, vous pouvez fournir une URL de notification pour l’Assembly.

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

transloadit.assembly(
  :notify_url => 'http://example.com/processing_finished'
).create! open('/PATH/TO/FILE.mpg')

Pour en savoir plus sur les Notifications, consultez la page de documentation de Transloadit EN (English).

7. Autres méthodes pour les Assemblies

Transloadit fournit également des méthodes pour récupérer ou rejouer des Assemblies et leurs Notifications.

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

assembly = transloadit.assembly

# returns a list of all assemblies
assembly.list

# returns a specific assembly
assembly.get 'YOUR_ASSEMBLY_ID'

# replays a specific assembly
response = assembly.replay 'YOUR_ASSEMBLY_ID'
# should return true if assembly is replaying and false otherwise.
response.replaying?

# returns all assembly notifications
assembly.get_notifications

# replays an assembly notification
assembly.replay_notification 'YOUR_ASSEMBLY_ID'

8. Templates

Transloadit fournit une API de Templates EN (English) pour les tâches d’encodage récurrentes. Voici comment créer un Template :

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

template = transloadit.template

# creates a new template
template.create(
  :name => 'TEMPLATE_NAME',
  :template => {
    "steps": {
      "encode": {
        "use": ":original",
        "robot": "/video/encode",
        "result": true
      }
    }
  }
)

Il existe également d’autres méthodes pour récupérer, mettre à jour et supprimer un Template.

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

template = transloadit.template

# returns a list of all templates.
template.list

# returns a specific template.
template.get 'YOUR_TEMPLATE_ID'

# updates the template whose id is specified.
template.update(
  'YOUR_TEMPLATE_ID',
  :name => 'CHANGED_TEMPLATE_NAME',
  :template => {
    :steps => {
      :encode => {
        :use => ':original',
        :robot => '/video/merge'
      }
    }
  }
)

# deletes a specific template
template.delete 'YOUR_TEMPLATE_ID'

9. Obtenir les rapports de facturation

Si vous souhaitez récupérer le rapport de facturation de votre compte Transloadit pour un mois et une année donnés, vous pouvez utiliser la méthode bill en lui passant le mois et l’année souhaités, comme suit :

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

# returns bill report for February, 2016.
transloadit.bill(2, 2016)

Si vous ne précisez pas month ou year, les valeurs par défaut seront le mois ou l’année en cours.

10. Limites de débit

Transloadit applique des limites de débit afin de garantir qu’aucun client ne soit pénalisé par l’utilisation d’un autre client. Consultez Limitation de débit.

Lors de la création d’une Assembly, si une erreur de limite de débit est reçue, 2 tentatives supplémentaires sont effectuées par défaut pour obtenir une réponse réussie. Si l’erreur de limite de débit persiste après ces tentatives, une exception RateLimitReached sera levée.

Pour modifier le nombre de tentatives effectuées lors de la création d’une Assembly, vous pouvez passer l’option tries à votre Assembly, comme suit.

require 'transloadit'

transloadit = Transloadit.new(
  :key    => 'YOUR_TRANSLOADIT_KEY',
  :secret => 'YOUR_TRANSLOADIT_SECRET'
)

# would make one extra attempt after a failed attempt.
transloadit.assembly(:tries => 2).create! open('/PATH/TO/FILE.mpg')

# Would make no attempt at all. Your request would not be sent.
transloadit.assembly(:tries => 0).create! open('/PATH/TO/FILE.mpg')

Exemple

Vous trouverez ici⁠ un petit tutoriel montrant comment utiliser le ruby-sdk de Transloadit pour optimiser une image, encoder de l’audio MP3, ajouter des tags ID3, et plus encore.

Documentation

Une documentation YARD à jour est générée automatiquement. Vous pouvez consulter la documentation de la gem publiée⁠ ou de la dernière version de la branche git main⁠.

Page précédente ← SDK PythonPage suivante Terraform →
Contacter le support⁠

TransloaditVérification de l’état…

Produit

  • Services
  • Tarifs
  • Démos EN (English)
  • Outils EN (English)
  • Sécurité EN (English)
  • Support

Entreprise

  • À propos de Transloadit/Presse EN (English)
  • Blog EN (English)/Carrières EN (English)
  • Comparatifs EN (English)/Matrice de conformité EN (English)
  • Recherche EN (English)
  • Projets open source
  • Solutions EN (English)
  • Pionniers du web EN (English)

Documentation

  • Premiers pas
  • Transcodage EN (English)
  • FAQ
  • API
  • Guides EN (English)/Astuces dev
  • Formats pris en charge EN (English)

Plus

  • État de la plateforme⁠
  • Forum de la communauté⁠
  • StackOverflow⁠
  • Uppy
  • tus⁠

© 2009–2026 Transloadit-II GmbH

Confidentialité EN (English)Conditions EN (English)Mentions légales EN (English)
EnglishDeutschEspañolFrançaisPortuguês (Brasil)