如何通过Pause / Resume支持上传到S3?

时间:2012-07-25 19:31:27

标签: java ruby-on-rails django amazon-s3 amazon-web-services

我想知道如何通过“暂停和恢复”支持将文件上传到Amazon S3? (通过网络浏览器)。

是否有可用的示例Web应用程序?任何编程语言/框架都可以。

提前致谢。

我实施了以下应用。 Github Link

它基于Condominios的示例应用和gem。

所有归功于https://github.com/cotag/的宝石和工作。

特点:

- Pause / Resume support ~ 5MB chunks
- Large File Upload
- Progress Bar
- No Java Applet / No Flash
- Registration system via devise

7 个答案:

答案 0 :(得分:3)

那个很重要。很长一段时间以来,我一直在寻找一个干净的答案。我甚至建立了一些东西,但它总是归结为使用介质为您的应用程序。我认为我找到的最佳解决方案就是使用它。这真的是一个非常简单的想法,很重要的是它只使用少量的闪存。

S3 Heroku Flash Uploader

Github Source Code

然而,不利的一面是你无法成功上传超过512 MB的任何东西,在那之后会出现某种现金流失。松散的轨道或东西。我认为我能想到的唯一其他解决方案是构建一个可以处理上传到服务器的Java应用程序。至少那时你有一个更稳定的连接,不必担心浏览器的问题。

答案 1 :(得分:3)

您应该使用分段上传API构建它。这是Java的链接:

http://docs.amazonwebservices.com/AmazonS3/2006-03-01/dev/mpListPartsJavaAPI.html

想法是启动多部分上传,开始上传部分(其大小将基于客户端的传输速率),并且每当用户暂停上传时,停止上传部分。您不会有逐字节暂停粒度,但我怀疑用户不会注意到这一点。

答案 2 :(得分:3)

我实施了以下应用。 Github Link:

https://github.com/interpegasus/condo_example

它基于以下示例app和gem:

http://cotag.github.com/Condominios/

所有归功于https://github.com/cotag/的宝石和工作。

特点:

  • 暂停/恢复支持~5MB块
  • 大文件上传
  • 进度条
  • 没有Java Applet /没有Flash
  • 通过设计注册系统

答案 3 :(得分:2)

Evaporate js是这个特定任务的一个非常好的插件。

看看这里:

https://github.com/TTLabs/EvaporateJS

答案 4 :(得分:1)

您需要这样的客户:https://github.com/23/resumable.js

服务器:

  1. 将块写入某处(本地或S3)
  2. 将完全组装的文件上传到S3。
  3. 您无法直接从浏览器进入S3。

    更新:S3现在支持CORS。 http://aws.amazon.com/about-aws/whats-new/2012/08/31/amazon-s3-announces-cross-origin-resource-sharing-CORS-support/

答案 5 :(得分:0)

您是否尝试过S3Fox firefox插件?

答案 6 :(得分:0)