Acompanhando o progresso do upload de arquivo para S3 usando o Ruby aws-sdk

Em primeiro lugar, estou ciente de que existem algumas perguntas semelhantes a esta em SO. Eu li a maioria, se não todos, na semana passada. Mas ainda não consigo fazer isso funcionar para mim.

Estou desenvolvendo um aplicativo Ruby on Rails que permite aos usuários fazer upload de arquivos mp3 para o Amazon S3. O upload em si funciona perfeitamente, mas uma barra de progresso melhoraria muito a experiência do usuário no site.

Eu estou usando o gem aws-sdk que é o oficial da Amazon. Procurei em toda parte em sua documentação por retornos de chamada durante o processo de upload, mas não consegui encontrar nada.

Os arquivos são enviados um de cada vez diretamente para o S3 para que não seja necessário carregá-lo na memória. Nenhum upload de arquivo múltiplo é necessário.

Eu percebi que talvez eu precise usar o JQuery para fazer este trabalho e eu estou bem com isso. Eu achei isso que parecia muito promissor:https://github.com/blueimp/jQuery-File-Upload E até tentei seguir o exemplo aqui:https://github.com/ncri/s3_uploader_example

Mas eu simplesmente não consegui fazer isso funcionar para mim.

A documentação do aws-sdk também descreve detalhadamente os uploads de streaming com um bloco:

  obj.write do |buffer, bytes|
     # writing fewer than the requested number of bytes to the buffer
     # will cause write to stop yielding to the block
  end

Mas isso é pouco útil. Como se escreve "no buffer"? Eu tentei algumas opções intuitivas que sempre resultariam em tempos limite. E como eu atualizaria o navegador com base no buffer?

Existe uma solução melhor ou mais simples para isso?

Agradeço antecipadamente. Eu apreciaria qualquer ajuda sobre este assunto.

questionAnswers(2)

yourAnswerToTheQuestion