【发布时间】:2012-07-17 02:32:47
【问题描述】:
我正在使用 heroku 托管一个主要关注托管视频的网络应用程序。这些视频是通过 vimeo pro 托管的,我使用vimeo gem by matthooks 来帮助处理上传过程。 上传适用于小文件,但不适用于较大的文件(例如,~50mb)。
查看 heroku 日志显示我收到 http 错误 413,它代表“请求实体太大”。我相信这可能与 heroku 对文件上传的限制(大于 30mb,according to this webpage)有关。但问题是,我能找到的关于该主题的任何信息似乎都已过时且相互矛盾(例如 claims there is no size limit 的此页面)。我在 heroku 的网站上也找不到任何关于此的内容。
我搜索了谷歌并找到了一些相关的页面(one 和two),但没有适合我的解决方案。我发现的大多数页面都涉及将大文件上传到 amazon 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,但我发现的唯一结果并不是很令人鼓舞:vimeo.com/forums/topic:28113
-
值得注意的是,我刚刚测试了将一个 8.5MB 的文件上传到我的 Heroku 应用程序,这需要 3 分 15 秒(是的,我有 DSL)。我的
Procfile中有web: gunicorn -t 60 -k "eventlet" -w 3 myapp.wsgi:application。换句话说,我已将超时时间增加到 60 秒,而我的应用程序将允许上传时间超过 3 分钟。我不确定这是什么原因,但这与我的 Dyno 允许并发连接有关。
标签: ruby-on-rails heroku upload http-error