HTML5和Amazon S3多部分上传

时间:2013-08-06 08:53:59

标签: javascript html5 amazon-s3 fileapi html5-filesystem

是否可以将HTML 5文件API(例如,此库:https://github.com/23/resumable.js)与S3多部分上传功能结合使用?

http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html

1 个答案:

答案 0 :(得分:11)

是的,但如果您打算将其作为公共网站的一部分,则需要某种服务器后端以更安全的方式处理Amazon API密钥。

您可以找到这些项目的完整示例实现:

请注意,我没有使用,测试或审查这些项目。

序列的粗略描述如下:

  1. 用户
    • 加载网页
    • 选择要上传的文件
    • 点击上传按钮
  2. 页面
    • 将有关文件的信息发送到服务器
  3. 服务器
    • 使用Amazon API创建分段上传
    • 将“key”(文件名)和“upload id”发送回网页
  4. 页面
    • 计算出零件尺寸
    • 请求服务器签署部分传递“密钥”,“上传ID”,部分信息
  5. 服务器
    • 签署部分请求,发送“部分上传网址”,“日期”和“身份验证标题”
  6. 页面
    • 使用“date”和“auth header”通过“part upload url”将部分数据直接发送到Amazon S3
    • 跟踪部分ID
  7. 服务器&网页
    • 重复5&每增加一个部分6,如果需要,恢复
  8. 页面
    • 向服务器发送“上传完成”请求(传递所有部分信息)
  9. 服务器
    • 向Amazon API发出请求以完成文件的创建
  10. 页面
    • 告知用户错误或成功
  11. 注意:

    • 如果上传已中止,则必须在服务器端处理,否则启动的部分/上传将占用S3 Bucket中的空间。
    • 完成向亚马逊的“上传完成”请求可能需要几分钟。