Rails项目的大文件下载

时间:2010-05-11 04:02:04

标签: ruby-on-rails amazon-s3 paperclip

一个客户项目将在两个月后上线。改变的要求之一是支持大型文件(每个RAW相机文件10到15MB,预计每天下载1000到5000个文件)全球下载给他们的客户。这个过程将是:

  • 通过回形针将上传屏幕添加到rails本地公用文件夹
  • 每小时上传到网络存储空间的任务(S3?)
  • 将下载网址从回形针网址更新为网址

问题:

  1. 是否有宝石/插件 目的?
  2. 如果没有,任何宝石/插件 为S3推荐?
  3. 有关存储提供商的问题:

    1. 是S3推荐的吗?
    2. 或推荐的其他服务?
    3. 基准是:客户端的Web服务器没有,也没有足够的带宽来处理下载。

      由于

3 个答案:

答案 0 :(得分:1)

aws-s3和delayed_job宝石可能就是你想要的。

gem install aws-s3

据我所知,S3很受欢迎并广泛使用。

答案 1 :(得分:1)

我认为没有任何东西可以为您完成所有这些开箱即用。 Paperclip会在上传时将文件同步到S3,因此您需要自己进行此同步。

S3是坚如磐石的,我在许多项目中都将它用于生产。完全推荐。

您可以直接将文件上传到S3,这可能有助于减少文件的双重处理(在推送到亚马逊之前不再需要上传到您的应用):

http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=139&externalID=1434

答案 2 :(得分:0)

如果您最终将上传路径直接上传到S3,从而将工作从Rails服务器卸载并使其异步,请查看我的示例项目:

使用Rails 3,Flash和基于MooTools的FancyUploader直接上传到S3的示例项目:https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader

示例项目使用Rails 3,Flash / Silverlight / GoogleGears / BrowserPlus和基于jQuery的Plupload直接上传到S3:https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload