繁体   English   中英

Fine Uploader如何确定如何以及何时恢复向Amazon S3的分段上传?

[英]How does Fine Uploader determine how and when to resume a multi-part upload to Amazon S3?

我有一个使用Fine Uploader的多部分功能和Amazon S3的示例。 但是我想知道应该如何使用它。 我发现如果中断了大文件的上传,然后重新加载页面并再次指定相同的文件,上传将恢复。 但是简历如何被召回? 是通过会话Cookie吗? 如果用户完全删除了所有cookie和历史记录,履历是否仍然可以使用? 要恢复中断的上传,需要坚持哪些条件? 是否全部取决于为对象生成的密钥? 只要键是一样的? 您能否提供简历上传有效的某些方案,何时不起作用? 谢谢。

简历功能存在于Fine Uploader S3中,而对于传统端点则存在Fine Uploader中。 对于传统的端点,cookie用于保留有关分块上传进度的信息。 但是,Fine Uploader S3使用localStorage

将每个块成功上传到S3之后,Fine Uploader S3的XHR上传传输处理程序会将该文件的当前状态信息保存在表示为项的localStorage

localStorage项的键由以下数据组成:

  1. 文档名称
  2. 文件大小
  3. 最大块大小
  4. S3存储桶名称

localStorage项的值是一个具有以下属性的Object (存储为字符串):

  1. 文档名称
  2. 文件大小
  3. 文件UUID
  4. S3键名
  5. 成功上传的字节数
  6. 当前时间/日期
  7. 块/零件总数
  8. 最后一个块索引已成功上传
  9. S3分配的上传ID(在原始“ Initiate Multipart Upload” REST调用期间从S3返回-这是每个上传请求中必填的部分)
  10. 零件索引到所有成功上传的零件的etag值的映射,这是Fine Uploader S3必须在“完成多部分上传” REST请求中包含的信息,该请求在最后一个零件上传后发送(要求S3合并所有零件) 。

当Fine Uploader S3的内部XHR上传处理程序收到“开始上传”信号时,它将计算要上传文件的密钥(使用上面第一个列表中的项目)。 如果存在一项项是localStorage (在当前域/源上),则保留的数据将用于恢复上载。

请注意,在Fine Uploader S3实例初始化期间,所有过期的localStorage项目都将被删除。 如果date属性(请参阅上面的第二个列表)已存在7天以上,则该项目已过期。 但是,可以通过resume.recordsExpireIn选项配置此值。

通过查看Fine Uploader S3上传处理程序模块源代码,可以详细了解所有这些逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM