Verfolgen des Upload-Fortschritts einer Datei in S3 mithilfe von Ruby aws-sdk

Erstens ist mir bewusst, dass es einige Fragen gibt, die denen in SO ähnlich sind. Ich habe die meisten, wenn nicht alle in der letzten Woche gelesen. Aber ich kann diese Arbeit immer noch nicht für mich erledigen.

Ich entwickle eine Ruby on Rails-App, mit der Benutzer MP3-Dateien auf Amazon S3 hochladen können. Der Upload selbst funktioniert einwandfrei, aber ein Fortschrittsbalken würde die Benutzererfahrung auf der Website erheblich verbessern.

Ich verwende das Juwel aws-sdk, das das offizielle von Amazon ist. Ich habe während des Uploads überall in der Dokumentation nach Rückrufen gesucht, aber nichts gefunden.

Die Dateien werden einzeln direkt in S3 hochgeladen, sodass sie nicht in den Speicher geladen werden müssen. Auch ein mehrfacher Dateiupload ist nicht erforderlich.

Ich dachte, dass ich möglicherweise JQuery verwenden muss, damit dies funktioniert, und damit bin ich einverstanden. Ich fand das sehr vielversprechend:https://github.com/blueimp/jQuery-File-Upload Und ich habe sogar versucht, dem Beispiel hier zu folgen:https://github.com/ncri/s3_uploader_example

Aber ich konnte es einfach nicht für mich arbeiten lassen.

Die Dokumentation zu aws-sdk beschreibt auch BRIEFLY das Streamen von Uploads mit einem Block:

  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

Das ist aber kaum hilfreich. Wie schreibt man "in den Puffer"? Ich habe ein paar intuitive Optionen ausprobiert, die immer zu Timeouts führten. Und wie würde ich überhaupt den Browser basierend auf der Pufferung aktualisieren?

Gibt es eine bessere oder einfachere Lösung dafür?

Danke im Voraus. Ich würde mich über jede Hilfe zu diesem Thema freuen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage