まず、SO でこれに似た質問がかなりあることを認識しています。この 1 週間で、すべてではないにしてもほとんどの本を読みました。しかし、私はまだこれを機能させることができません。
ユーザーが mp3 ファイルを Amazon S3 にアップロードできるようにする Ruby on Rails アプリを開発しています。アップロード自体は完璧に機能しますが、プログレス バーを使用すると、Web サイトでのユーザー エクスペリエンスが大幅に向上します。
Amazon の公式の aws-sdk gem を使用しています。アップロード プロセス中のコールバックに関するドキュメントを隅々まで調べましたが、何も見つかりませんでした。
ファイルは一度に 1 つずつ直接 S3 にアップロードされるため、メモリにロードする必要はありません。複数のファイルのアップロードも必要ありません。
これを機能させるにはJQueryを使用する必要があるかもしれないと考えましたが、それで問題ありません。私はこれが非常に有望に見えることを発見しました: https://github.com/blueimp/jQuery-File-Upload そして、ここの例に従ってみました: https://github.com/nri/s3_uploader_example
しかし、私はそれをうまく機能させることができませんでした。
aws-sdk のドキュメントでは、ブロックを使用したストリーミング アップロードについても簡単に説明しています。
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
しかし、これはほとんど役に立ちません。どのように「バッファに書き込む」のですか? 常にタイムアウトになる直感的なオプションをいくつか試しました。また、バッファリングに基づいてブラウザを更新するにはどうすればよいでしょうか?
これに対するより良い、またはより簡単な解決策はありますか?
前もって感謝します。この件について何か助けていただければ幸いです。