关于这个问题,Upload files directly to Amazon S3 from ASP.NET application,有没有办法做到这一点并有一个进度条?
- - 编辑 - -
两天后,直接方法仍然没有运气。发现一件看起来很有希望但不是免费的东西:http: //www.flajaxian.com/
使用 flash 直接上传到带有进度条的 S3。
关于这个问题,Upload files directly to Amazon S3 from ASP.NET application,有没有办法做到这一点并有一个进度条?
- - 编辑 - -
两天后,直接方法仍然没有运气。发现一件看起来很有希望但不是免费的东西:http: //www.flajaxian.com/
使用 flash 直接上传到带有进度条的 S3。
我也在寻找解决方案。也许这会有所帮助,
来自 AWS Dev Commnity 但是在许多语言(PHP、Java)中,对于大文件,您必须使用流,语言环境将通过这些流一个接一个地获取大文件的块(以便用大量的中央内存填充上传所需的 S3 的 http POST 数据。
关于流的好处是,每当读取下一个块以进一步将(在 https 意义上的)数据放入 S3 时,它们都会调用回调。您可以使用此回调来计算和显示客户端 UI 上的进度。
请参阅 libcurl 的文档以详细了解这一切是如何工作的。
更新:看起来有两个简单的选择。
我个人讨厌使用 3rd 方扩展(Flash、Java)来制作应用程序功能,但我还没有找到其他方法。
如果您不介意缺少浏览器支持,则 html5 javascript 可以让您执行此操作(仅在这篇文章中使用 Firefox 和 Chrome _此处示例:https ://developer.mozilla.org/en/Using_files_from_web_applications
这并不特定于 AWS,但可能会帮助您更接近。
另一种方法是使用像 Uber Uploader ( http://uber-uploader.sourceforge.net/ ) 这样的东西,这是一个带有进度条的 perl / php 混合解决方案。您只需将文件上传到您的服务器,然后让您的服务器在后台通过 FTP 将它们发送到最终目的地。这是一个额外的步骤,但它给了您一些时间来进行任何处理/编码等,您可能需要在发送到 S3 之前执行这些操作。