我正在使用heroku主持託管視頻的主要焦點的Web應用程序。這些視頻是通過vimeo pro託管的,我使用vimeo gem by matthooks來幫助處理上傳過程。 上傳適用於小文件,但不適用於較大文件(例如〜50mb)。如何在Heroku上上傳大文件(特別是視頻)
看一看heroku日誌顯示我得到http錯誤413,它代表「Request Entity Too Large」。我相信這可能與heroku對文件上傳的限制(大於30mb,according to this webpage)有關。但問題是,我可以找到關於這個問題的任何信息似乎是過時的和衝突的(就像這個頁面claims there is no size limit)。我也無法在heroku的網站上找到關於此的任何內容。
我搜索谷歌,發現一些有點相關的網頁(one和two),但沒有解決方案,爲我工作。我找到的大部分網頁都是將大文件上傳到亞馬遜S3,這與我正在嘗試做的不同。
這裏是日誌的相關輸出:
2012-07-18T05:13:31+00:00 heroku[nginx]: 152.3.68.6 - - [18/Jul/2012:05:13:31 +0000]
"POST /videos HTTP/1.1" 413 192 "http://neoteach.com/components/19" "Mozilla/5.0
(Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1" neoteach.com
有在日誌中沒有其他錯誤。這是我嘗試上傳視頻過大時出現的唯一輸出。這意味着這不是超時錯誤或超過每個動態碼分配的內存的問題。
heroku是否真的限制上傳大小?如果是這樣,有什麼辦法可以改變這個限制嗎?請注意,這些文件本身並未存儲在heroku的服務器上,它們只是傳遞給vimeo的服務器。
如果問題不限制上傳大小,是否有人知道還有什麼可能會出錯?
非常感謝!
據我所知,沒有這樣的方式。我不得不直接上傳到S3。您可能會找到某種方式將視頻直接傳遞給Vimeo,但我發現的唯一結果並不令人鼓舞:http://vimeo.com/forums/topic:28113 – Qsario 2012-07-18 05:50:56
值得注意的是,我剛剛測試過上傳一個8.5MB的文件到我的Heroku應用程序,花了3分15秒(是的,我有DSL)。我在'Procfile'中有'web:gunicorn -t 60 -k「eventlet」-w 3 myapp.wsgi:application'。換句話說,我將超時時間增加到了60秒,而我的應用程序將允許上傳時間超過3分鐘。我不確定這個原因,但它與我的Dyno允許併發連接有關。 – orokusaki 2013-11-04 16:22:12