Dea*_*lor 11

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

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

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

序列的粗略描述如下:

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

笔记:

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