5

現在、Rails 3.2 と Carrierwave gem を使用して、ファイルを Amazon S3 にアップロードしています。ここで、Carrierwave gem を使用しながら、ユーザーが送信した 5GB を超えるファイルを処理できるようにする必要があります。S3 への 5 GB 以上のファイルのアップロードを処理できる Carrierwave または Fog の他の gem またはブランチはありますか?

編集: 完全な Rails アップロード ソリューションを書き直す必要はないので、次のようなリンクは役に立ちません: https://gist.github.com/908875

4

3 に答える 3

7

私はこれを行う方法を考え出し、現在それを機能させています。適切なconfig/environmentファイルに以下を追加して、ファイルを 100MB のチャンクで Amazon S3 に送信します。

CarrierWave.configure do |config|
  config.fog_attributes = { :multipart_chunk_size => 104857600 }
end

フォグ ジェムにはマルチパート アップロードが組み込まれているため (指摘してくれた Veraticus に感謝)、適切な構成属性を Carrierwave 経由でフォグに渡すだけで済みます。S3 への送信時に頻繁にConnection reset by peer (Errno::ECONNRESET)エラーが発生したため、アップロードの一部を再試行する必要がある場合があります。

于 2012-08-08T15:28:11.427 に答える
6

S3 のマルチパート アップロード機能を使用したい。このプル リクエストでわかるように、Fog は確かにマルチパート S3 アップロードを処理できます。

残念ながら、Carrierwave には正しく使用するための機能が組み込まれていないようです。したがって、このファイルを正しくアップロードするには、Carrierwave を変更するか、手動で Fog にドロップする必要があります。

于 2012-08-02T17:24:07.987 に答える
-2

アップロードする前に、ファイルを細かく分割する必要があります。

以下を見てください。

http://www.ruby-forum.com/topic/1282369

http://joemiller.me/2011/02/18/client-support-for-amazon-s3-multipart-uploads-files-5gb/

いずれにせよ、ファイルを分割する必要があります。

于 2012-08-02T16:24:53.773 に答える