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

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

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

提前致谢。

我实现了以下应用程序。 Github Link 。

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

所有功劳都归功于https://github.com/cotag/ ,这是一个伟大的gem和工作。

特征:

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

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

S3 Heroku Flash Uploader

Github源代码

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

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

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

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

我实现了以下应用程序。 Github链接:

 https://github.com/interpegasus/condo_example 

它基于以下示例app和gem:

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

所有功劳都归功于https://github.com/cotag/ ,这是一个伟大的gem和工作。

特征:

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

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

看看这里:

https://github.com/TTLabs/EvaporateJS

你需要一个像这样的客户端: https : //github.com/23/resumable.js

和服务器:

  1. 在某处(本地或S3)写入块
  2. 将完全组装的文件上载到S3。

你无法直接从浏览器到S3。

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

你试过S3Fox firefox插件吗?