Transloadit
Preços
  • Uploads de arquivos
  • Importação de arquivos
  • Processamento em lote (English)
  • Codificação de vídeo
  • Codificação de áudio
  • Processamento de imagens
  • Processamento de documentos
  • Inteligência artificial
  • Filtragem de arquivos e segurança
  • Catalogação de mídia
  • Compressão de arquivos
  • Avaliação de código
  • Exportação de arquivos
  • Smart CDN
  • Ver todos os serviços
  • Explore integrações (English)
  • Explore demos ao vivo (English)
  • Uppy
  • TransloaditKit
  • Android SDK
  • Node.js SDK
  • Python SDK
  • Ruby SDK
  • Go SDK
  • Java SDK
  • PHP SDK
  • Zapier
  • MCP Server
  • Transloadit CLI (English)
  • Terraform
  • Essenciais
  • Boas práticas
  • Perguntas frequentes (English)
  • Robots
  • API
  • Formatos (English)
  • Crie seu primeiro app
  • Sobre (English)
  • Comparações (English)
  • Código aberto (English)
  • Depoimentos (English)
  • Vagas (English)
  • Segurança (English)
  • Publicações (English)
  • Notícias para devs (English)
  • Dicas para devs (English)
  • Imprensa (English)
  • Pesquisa (English)
  • Estudos de caso (English)
  • Soluções (English)
  • Guias (English)
  • Glossário (English)
  • Jurídico (English)
  • Ferramentas (English)
  • Ajudando a Coursera a levar educação a milhões de pessoas no mundo todo (English)
  • Suporte da Transloadit
  • Suporte a código aberto (English)
  • Acordo de nível de serviço (English)
EssenciaisRobotsPerguntas frequentesEN (English)APIFormatosEN (English)Boas práticas
Primeiros passos
  • Visão geral
  • Meu primeiro app
  • Salvando arquivos de resultado
Tópicos
  • Assembly Instructions
  • Assembly Variables
  • Avaliação dinâmica
  • Templates
  • Webhooks
  • Credenciais de terceiros
  • Builtin Templates
  • Estratégias de redimensionamento
  • Assembly Execution Progress
  • Workspaces
  • Agentes de IA
  • Parâmetro use avançado
  • O parâmetro ignore_errors
Kits de desenvolvimento de software
  • Visão geral
  • SDK para Android
  • Navegadores
  • Convex
  • cURL
  • SDK para Go
  • SDK para Java
  • Servidor MCP
  • Formulário multipart
  • SDK para Node.js
  • SDK para PHP
  • SDK para Python
  • SDK para Ruby
  • Terraform
  • TransloaditKit
  • Integração com o Zapier
Migração
  • 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 para Ruby

transloadit/ruby-sdk⁠

Nossa gem Ruby permite automatizar o upload de arquivos por meio da REST API da Transloadit.

Se você usa Ruby on Rails e procura uma integração com o navegador para lidar com uploads de arquivos, também temos um SDK Ruby on Rails EN (English) pronto para você usar.

Instalar

gem install transloadit

Uso

Para começar, você precisa carregar a gem “transloadit” usando require:

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

Em seguida, crie uma instância da Transloadit, que manterá suas credenciais de autenticação e nos permitirá fazer requisições à API.

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

1. Redimensionar e armazenar uma imagem

Este exemplo mostra como você pode criar uma Assembly para redimensionar uma imagem e armazenar o resultado no 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
Observação

O método submit! de Assembly está preterido e foi substituído por create!. O método submit! continua sendo um alias de create! para manter a compatibilidade com versões anteriores.

Quando o método create! retorna, o upload do arquivo já foi concluído, mas o processamento ainda pode estar em andamento. Podemos usar o objeto retornado para verificar se o processamento foi concluído ou examinar outros atributos da requisição.

# 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

É importante observar que nenhuma dessas consultas ocorre “em tempo real”, com exceção do método cancel!. Todas verificam a resposta fornecida pela API no momento em que a Assembly foi criada. Você precisa pedir explicitamente que a Assembly recarregue seus resultados da 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

Em geral, você usa a sintaxe de acesso a hashes para consultar qualquer atributo direto da resposta. Métodos com ponto de interrogação no final oferecem uma forma mais legível de consultar o estado (por exemplo, assembly.completed? em vez de verificar o resultado de assembly[:ok]). Métodos com ponto de exclamação no final fazem uma consulta em tempo real à API HTTP da Transloadit.

2. Fazer upload de vários arquivos

Você pode passar vários arquivos ao método create! para fazer upload de mais de um arquivo na mesma requisição. Também pode passar um único Step no parâmetro steps, sem precisar colocá-lo em um 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')
)

Você também pode passar um array de arquivos ao método create!. Basta desempacotar o array usando o operador splat *.

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

3. Assembly paralela

A Transloadit permite executar vários Steps de processamento em paralelo. Basta chamar use com outros Steps. Seguindo o exemplo da Transloadit:

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

Você também pode indicar que um Step deve usar o arquivo original enviado por upload, passando o Symbol :original em vez de outro Step.

Consulte a documentação YARD para saber mais sobre como usar use⁠.

4. Criar uma Assembly com Templates

A Transloadit permite usar Templates⁠ personalizados para tarefas recorrentes de codificação. Para usá-los, faça o seguinte:

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

Você pode usar seus Steps com esse Template e até usar variáveis. A documentação da Transloadit tem bons exemplos disso.

5. Usar campos

A Transloadit permite enviar valores de campos de formulário que você receberá de volta na notificação. Isso é bastante útil se você quiser adicionar metadados personalizados ao próprio upload. Você pode usar campos como os seguintes:

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 notificação

Se quiser receber uma notificação quando o processamento terminar, você pode fornecer uma URL de notificação para a 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')

Saiba mais sobre as Notifications na página de documentação da Transloadit.

7. Outros métodos de Assembly

A Transloadit também oferece métodos para recuperar e reexecutar Assemblies, além de recuperar e reenviar suas 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

A Transloadit oferece uma API de Templates para tarefas recorrentes de codificação. Veja como criar um 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
      }
    }
  }
)

Também há outros métodos para recuperar, atualizar e excluir um 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. Obter relatórios de cobrança

Se quiser obter o relatório de cobrança da sua conta na Transloadit para um mês e ano específicos, você pode usar o método bill, passando o mês e o ano desejados, assim:

require 'transloadit'

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

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

Se você não especificar month ou year, será usado por padrão o mês ou o ano atual, respectivamente.

10. Limites de requisições

A Transloadit aplica limites de requisições para garantir que nenhum cliente seja prejudicado pelo uso de qualquer outro cliente. Consulte Limitação de requisições.

Ao criar uma Assembly, se ocorrer um erro de limite de requisições, serão feitas, por padrão, mais 2 tentativas para obter uma resposta bem-sucedida. Se o erro persistir após essas tentativas, será lançada uma exceção RateLimitReached.

Para alterar o número de tentativas feitas ao criar uma Assembly, você pode passar a opção tries para sua Assembly assim:

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

Exemplo

Você encontra aqui⁠ um breve tutorial com exemplos de como usar o ruby-sdk da Transloadit para otimizar uma imagem, codificar áudio MP3, adicionar tags ID3 e muito mais.

Documentação

A documentação YARD atualizada é gerada automaticamente. Você pode consultar a documentação da gem publicada⁠ ou da versão mais recente da branch main no Git⁠.

Página anterior ← SDK para PythonPróxima página Terraform →
Falar com o suporte⁠

TransloaditVerificando status…

Produto

  • Serviços
  • Preços
  • Demonstrações EN (English)
  • Ferramentas EN (English)
  • Segurança EN (English)
  • Suporte

Empresa

  • Sobre EN (English)/Imprensa EN (English)
  • Blog EN (English)/Vagas EN (English)
  • Comparações EN (English)/Matriz de conformidade EN (English)
  • Pesquisa EN (English)
  • Código aberto EN (English)
  • Soluções EN (English)

Documentação

  • Primeiros passos
  • Transcodificação
  • Perguntas frequentes EN (English)
  • API
  • Guias EN (English)/Dicas para devs EN (English)
  • Formatos suportados EN (English)

Mais

  • Status da plataforma⁠
  • Fórum da comunidade⁠
  • StackOverflow⁠
  • Uppy EN (English)
  • tus⁠

© 2009–2026 Transloadit-II GmbH

Privacidade EN (English)Termos EN (English)Aviso legal EN (English)
EnglishDeutschEspañolPortuguês (Brasil)