Carrierwave と Fog を使用してファイルを Amazon S3 にアップロードする Rails 4 アプリがあります。アプリが使用するサーバーは Nginx と Thin です。
私が抱えている問題は、5 MB を超えるファイルをアップロードするときです。
CarrierwaveDirect を試してみましたが、まだ動作させることができません。
これが私のCarrierwave構成です:
config.fog_directory = 'aws-bucket-name'
config.fog_public = false
config.fog_attributes = { multipart_chunk_size: 5242880 }
config.max_file_size = 200.megabytes # CarrierwaveDirect option
コントローラーのアクションは次のとおりです。
def new
@file = DownloadFile.new
end
def create
@file = DownloadFile.new
@file.file = params[:download_file][:file]
if @file.save
redirect_to downloads_path
else
render :new
end
end
そしてフォーム:
<%= form_for @file, multipart: true do |f| %> <!-- even tried with `multipart` wrapped in `html: {}` -->
<%= f.label :file %>
<%= f.file_field :file %>
<%= f.button t(:upload) %>
<% end %>
小さなファイルは問題なくアップロードできますが、5 MB を超えるファイルになると、フォームが再表示されます。エラーなし、ログにエラーなし、何もありません。