1

我有一个将 Fine Uploader 的多部分功能与 Amazon S3 结合使用的示例。但是我想知道它应该如何使用。我看到如果我中断了一个大文件的上传,我重新加载页面并再次指定相同的文件,上传将继续。但如何召回简历?是通过会话 cookie 吗?如果用户完全删除了所有 cookie 和历史记录,简历还能正常工作吗?为了恢复中断的上传,需要坚持什么?这一切都取决于为对象生成的密钥吗?只要钥匙是一样的?您能否提供一些简历上传有效的场景以及何时无效?谢谢。

4

1 回答 1

1

恢复功能存在于 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(在原始“启动分段上传”REST 调用期间从 S3 返回 - 这是每个上传请求的必需部分)
  10. 部分索引到所有成功上传部分的 etag 值的映射,这是 Fine Uploader S3 必须包含在“完成多部分上传”REST 请求中的信息,该请求在最后一部分上传后发送(要求 S3 合并所有部分) .

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

请注意,localStorage在 Fine Uploader S3 实例初始化期间会删除所有过期项目。如果日期属性(请参阅上面的第二个列表)超过 7 天,则项目已过期。不过,这个值是可配置的,通过resume.recordsExpireIn选项.

通过查看Fine Uploader S3 上传处理程序模块源代码,您可以看到所有这些逻辑以及更多细节。

于 2013-10-15T03:57:08.860 回答