Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5和AmazonS3多部分上传_Javascript_Html_Amazon S3_Fileapi_Html5 Filesystem - Fatal编程技术网

Javascript HTML5和AmazonS3多部分上传

Javascript HTML5和AmazonS3多部分上传,javascript,html,amazon-s3,fileapi,html5-filesystem,Javascript,Html,Amazon S3,Fileapi,Html5 Filesystem,是否可以将HTML5文件API(例如,此库:)与S3多部分上载功能结合使用 是的,但是如果要使Amazon API成为公共网站的一部分,则需要某种服务器后端以更安全的方式处理它 您可以找到这些项目的完整实施示例: 它使用PHP后端 它使用Ruby 请注意,我没有使用、测试或审查这些项目 序列的大致描述如下: 使用者 加载网页 选择要上载的文件 点击上传按钮 网页 将有关文件的信息发送到服务器 服务器 使用Amazon API创建多部分上载 将“密钥”(文件名)和“上载id”发送回网

是否可以将HTML5文件API(例如,此库:)与S3多部分上载功能结合使用


是的,但是如果要使Amazon API成为公共网站的一部分,则需要某种服务器后端以更安全的方式处理它

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

  • 它使用PHP后端
  • 它使用Ruby
请注意,我没有使用、测试或审查这些项目

序列的大致描述如下:

  • 使用者
    • 加载网页
    • 选择要上载的文件
    • 点击上传按钮
  • 网页
    • 将有关文件的信息发送到服务器
  • 服务器
    • 使用Amazon API创建多部分上载
    • 将“密钥”(文件名)和“上载id”发送回网页
  • 网页
    • 计算零件的尺寸
    • 请求服务器签署传递“密钥”、“上载id”和“部件信息”的部件
  • 服务器
    • 签署部件请求,发送“部件上载url”、“日期”和“验证头”
  • 网页
    • 使用“日期”和“验证头”,通过“部件上载url”将部件数据直接发送到Amazon S3
    • 跟踪零件ID
  • 服务器和网页
    • 对每个附加零件重复5和6次,必要时继续
  • 网页
    • 向服务器发出“上传完成”请求(传递所有零件信息)
  • 服务器
    • 向Amazon API发出请求以完成文件的创建
  • 网页
    • 通知用户错误或成功
  • 注:

    • 如果上传被中止,这也必须由服务器端处理,否则启动的部件/上传将留在S3存储桶中以占用空间
    • 可能需要几分钟才能完成对Amazon的“上传完成”请求

    感谢您的详细回答!我实际上已经开始实施你之前详述的协议,但还没有真正完成它:太好了,我注意到您在项目中使用了Ruby,还发现了另一个Ruby项目,我已将其添加到答案中供您参考。显然不清楚,所以多亏了你的评论,我更新了答案,使链接更清晰。@Baustebig实际上,项目的大部分是用Javascript编写的,它只需要一个小的服务器端端点,可以用任何语言轻松编写。“规范”端点是用Python编写的(Flask)。