【发布时间】:2011-09-02 19:21:56
【问题描述】:
我需要编写一个应用程序,允许用户上传大型视频。 Afaik,PHP 将整个上传的文件存储到内存中(至少默认情况下),因此您会遇到大文件的问题。 Rails 有类似的问题吗?我需要接收最大 2 GB 的文件。
我的设置是:
- Ruby 1.8.7
- Rails 3.0
- 乘客 3.0
- Apache 2.2
除非你推荐别的东西,否则我会试试 Paperclip。
问候,约翰内斯
【问题讨论】:
我需要编写一个应用程序,允许用户上传大型视频。 Afaik,PHP 将整个上传的文件存储到内存中(至少默认情况下),因此您会遇到大文件的问题。 Rails 有类似的问题吗?我需要接收最大 2 GB 的文件。
我的设置是:
除非你推荐别的东西,否则我会试试 Paperclip。
问候,约翰内斯
【问题讨论】:
这是可能的,我们有一个商业网站,目前正在处理上传约 3GB 的长高清视频,使用 CarrierWave 就可以了——这是 Paperclip 的绝佳替代品。
只要您正确设置 Apache 以接受如此大的请求,您可能不会遇到 PHP 应用程序等传统上需要设置最大请求大小和诸如此类的配置地狱的相同问题。
不过,请阅读本文以了解注意事项:http://www.therailsway.com/2009/4/23/uploading-files
编辑:对于它的价值,我们正在使用 Nginx + 上传模块(有关信息,请参阅https://github.com/vkholodkov/nginx-upload-module)来执行此操作并避免上述文章中的问题; afaik Rails 在正常处理上传时会将整个上传的文件加载到内存中,这意味着您将需要大量的内存,除非您使用类似上述文章中提到的 mod_porter 插件。
【讨论】: