【Ruby】CarrierWaveを利用してS3に5GB以上のファイルをアップロードする
3日ほどさんざんハマっててようやく解決したのでメモ。
構築中のシステムでzipファイルをCarrierWaveを利用してS3に自動アップロードする処理があるが、特定のファイルだけどうしてもアップロードできずにハマってた。
ソースやデータを見てもおかしなことろがなく、「何がまずいのか...」と思っていたが、S3のドキュメントを見ていたら、
1 回のオペレーションでオブジェクトをアップロードする – 1 回の PUT オペレーションでアップロードできるオブジェクトの最大サイズは 5 GB です。
これだあああああああああ
S3では5GB以上のファイルは1度にアップロードできず、「マルチパートアップロードAPI」を利用しないといけないとのこと。
今回アップロードしようとしていたzipの容量が5.3GBだったので、これに引っかかっていた模様。
以下の記事を参考に、CarrierWaveの設定を追加
CarrierWave.configure do |config| ... config.fog_attributes = { :multipart_chunk_size => 524288000 } # => 500MBずつアップロード ... end
これで5GB以上のファイルも無事にアップロードできました。
Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門 (CodeZine BOOKS)
- 作者: WINGSプロジェクト阿佐志保,山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2016/06/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る