我有一個Rails 4應用程序,它使用Carrierwave和Fog將文件上傳到Amazon S3。該應用使用的服務器是Nginx和Thin。Carrierwave /霧到S3失敗,文件超過5MB
我遇到的問題是上傳文件超過5MB。
我試過在任何地方搜索一種方式來讓它工作,我試過了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 %>
我可以上傳小文件就好了,但當涉及超過5MB的文件時,表單只是重新顯示。沒有錯誤,日誌中沒有錯誤,什麼都沒有。
顯示你的控制器動作並查看錶單。 –
完成。我正在尋找可能導致這種情況的原因,它可能是某處出現超時事件,或者出於某種原因,AWS S3不想採用大於5MB的文件。 – user1983787
我已經縮小了大於5mb的文件和Carrierwave。當我僅使用Fog上傳時,它可以正常工作,但是當Carrierwave處於混音狀態時,它完全失敗。這就像它不知道如何告訴霧做一個分段上傳。 – user1983787