Transloadit
Precios
  • Gestión de subidas
  • Importación de archivos
  • Encoding de video
  • Encoding de audio
  • Procesamiento de imágenes
  • Inteligencia artificial
  • Procesamiento de documentos
  • Filtrado de archivos
  • Evaluación de código
  • Catalogación de medios
  • Compresión de archivos
  • Exportación de archivos
  • Smart CDN
  • Explora demos en vivo (English)
  • Uppy
  • iOS & macOS
  • Android
  • Node.js
  • Python
  • Ruby
  • Go
  • Zapier
  • MCP Server
  • Terraform
  • Conceptos esenciales
  • Prácticas recomendadas
  • FAQ
  • Robots
  • Endpoints de la API
  • Formatos
  • Crea tu primera app
  • Acerca de Transloadit
  • Código abierto
  • Testimonios
  • Empleos (English)
  • Seguridad
  • Publicaciones
  • Actualidad para desarrolladores (English)
  • Consejos para desarrolladores (English)
  • Prensa (English)
  • Casos de éxito
  • Soluciones
  • Comparaciones (English)
  • Legal (English)
  • Ayudando a Coursera a llevar educación a millones de personas en todo el mundo
  • Soporte de Transloadit
  • Soporte para código abierto (English)
  • Acuerdo de nivel de servicio (English)
Primeros pasos
  • Descripción general
  • Mi primera aplicación
  • Guardar los archivos de resultados
Temas
  • Assembly Instructions
  • Assembly Variables
  • Evaluación dinámica
  • Templates
  • Webhooks
  • Credenciales de terceros
  • Builtin Templates
  • Estrategias de redimensionamiento
  • Assembly Execution Progress
  • Workspaces
  • Agentes de IA
  • Parámetro use avanzado
  • El parámetro ignore_errors
Kits de desarrollo de software
  • Resumen
  • SDK para Android
  • Navegadores
  • Convex
  • cURL
  • SDK de Go
  • SDK de Java
  • Servidor MCP
  • Formulario multipart
  • SDK de Node.js
  • SDK de PHP
  • SDK de Python
  • SDK de Ruby
  • Terraform
  • TransloaditKit
  • Integración con Zapier

SDK de Ruby

transloadit/ruby-sdk⁠

Nuestra gema de Ruby te permite automatizar la subida de archivos mediante la REST API de Transloadit.

Si ejecutas Ruby on Rails y, en cambio, buscas una integración con el navegador para gestionar subidas de archivos, también tenemos un SDK de Ruby on Rails EN (English) listo para que lo uses.

Instalación

gem install transloadit

Uso

Para comenzar, debes cargar la gema 'transloadit':

$ irb -rubygems
>> require 'transloadit'
=> true

Luego, crea una instancia de Transloadit, que conservará tus credenciales de autenticación y nos permitirá realizar solicitudes a la API.

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

1. Redimensionar y almacenar una imagen

Este ejemplo muestra cómo puedes crear una Assembly para redimensionar una imagen y almacenar el resultado en 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
Nota

El método submit! de Assembly dejó de ser recomendado y se reemplazó por create!. El método submit! se mantiene como alias de create! por compatibilidad con versiones anteriores.

Cuando el método create! devuelve el resultado, el archivo ya se ha subido, pero es posible que su procesamiento aún no haya terminado. Podemos usar el objeto devuelto para comprobar si el procesamiento finalizó o examinar otros atributos de la solicitud.

# 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

Es importante tener en cuenta que ninguna de estas consultas se realiza «en vivo» (a excepción del método cancel!). Todas comprueban la respuesta proporcionada por la API en el momento en que se creó la Assembly. Debes solicitar explícitamente a la Assembly que vuelva a cargar sus resultados desde la 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 general, se usa la sintaxis de acceso de hashes para consultar cualquier atributo directo de la respuesta. Los métodos cuyo nombre termina en signo de interrogación ofrecen una forma más legible de consultar el estado (por ejemplo, assembly.completed? frente a comprobar el resultado de assembly[:ok]). Los métodos cuyo nombre termina en signo de exclamación realizan una consulta en vivo a la API HTTP de Transloadit.

2. Subir varios archivos

Puedes proporcionar varios archivos al método create! para subir más de un archivo en la misma solicitud. También puedes pasar un único Step al parámetro steps sin tener que envolverlo en 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')
)

También puedes pasar un arreglo de archivos al método create!. Simplemente, desempaqueta el arreglo mediante el operador splat *.

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

3. Assembly paralela

Transloadit te permite ejecutar varios Steps de procesamiento en paralelo. Solo necesitas indicar mediante use otros Steps. Siguiendo su ejemplo:

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')

También puedes indicarle a un Step que use el archivo original subido pasando el símbolo :original en lugar de otro Step.

Consulta la documentación de YARD para obtener más información sobre el uso de use⁠.

4. Crear una Assembly con Templates

Transloadit te permite usar Templates⁠ personalizados para tareas recurrentes de encoding. Para usarlos, haz lo siguiente:

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')

Puedes usar tus Steps junto con este Template e incluso usar variables. La documentación de Transloadit incluye algunos buenos ejemplos de esto.

5. Usar campos

Transloadit te permite enviar valores de campos de formulario que recibirás nuevamente en la notificación. Esto resulta muy útil si deseas añadir metadatos personalizados adicionales a la propia subida. Puedes usar campos como los siguientes:

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 notificación

Si deseas recibir una notificación cuando finalice el procesamiento, puedes proporcionar una URL de notificación para la 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')

Obtén más información sobre las Notifications en la página de documentación de Transloadit.

7. Otros métodos de Assembly

Transloadit también proporciona métodos para recuperar y reejecutar Assemblies, así como para recuperar y reenviar sus 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 proporciona una API de Templates para tareas recurrentes de encoding. Así puedes crear 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
      }
    }
  }
)

También hay otros métodos para recuperar, actualizar y eliminar 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. Obtener informes de facturación

Si deseas recuperar el informe de facturación de tu cuenta de Transloadit correspondiente a un mes y año específicos, puedes usar el método bill y pasarle el mes y el año requeridos de la siguiente manera:

require 'transloadit'

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

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

Si no especificas month o year, se usará de forma predeterminada el mes o el año actual, respectivamente.

10. Límites de tasa

Transloadit aplica límites de tasa para garantizar que el uso de un cliente determinado no afecte negativamente a ningún otro cliente. Consulta Límites de tasa.

Al crear una Assembly, si se recibe un error de límite de tasa, de forma predeterminada se realizarán 2 intentos adicionales para obtener una respuesta correcta. Si el error de límite de tasa persiste después de estos intentos, se generará una excepción RateLimitReached.

Para cambiar el número de intentos que se realizarán al crear una Assembly, puedes pasar la opción tries a tu Assembly de la siguiente manera.

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')

Ejemplo

Puedes encontrar aquí⁠ un breve tutorial de ejemplo sobre cómo usar el SDK de Ruby de Transloadit para optimizar una imagen, codificar audio MP3, añadir etiquetas ID3 y mucho más.

Documentación

La documentación actualizada de YARD se genera automáticamente. Puedes consultar la documentación de la gema publicada⁠ o de la versión más reciente de git main⁠.

Página anterior ← SDK de PythonPágina siguiente Terraform →
TransloaditVerificando el estado…

Producto

  • Servicios
  • Precios
  • Demos EN (English)
  • Seguridad
  • Soporte

Empresa

  • Acerca de Transloadit/Prensa EN (English)
  • Blog/Empleos EN (English)
  • Comparaciones EN (English)
  • Código abierto
  • Soluciones

Documentación

  • Primeros pasos
  • Transcodificación
  • FAQ
  • Endpoints de la API
  • Formatos compatibles

Más

  • Estado de la plataforma⁠
  • Foro de la comunidad⁠
  • StackOverflow⁠
  • Uppy EN (English)
  • tus⁠

© 2009–2026 Transloadit-II GmbH

Privacidad EN (English)Términos EN (English)Aviso legal EN (English)