V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
mamahaha
V2EX  ›  JavaScript

请教一下各位大佬,有人研究过断点续传上传文件到服务器的吗?

  •  1
     
  •   mamahaha · 2019-04-07 01:07:00 +08:00 · 4325 次点击
    这是一个创建于 2064 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问第 2 步是否是这样做的? 1、首先计算整个文件的 md5,然后如果与已经上传的文件的 md5 如果相同,就跳过,直接用已经上传的文件。 2、然后一个大文件分成若干个分段,每个分段是否都得计算其 md5 ?待上传分段如果与已经上传的分段 md5 一致的话就跳过,也就是上次传完的分段不必再传。 不知是不是这样的?

    8 条回复    2019-04-08 02:58:06 +08:00
    sxcccc
        1
    sxcccc  
       2019-04-07 01:17:25 +08:00 via iPhone   ❤️ 1
    为什么不用现成的框架呢
    wunonglin
        2
    wunonglin  
       2019-04-07 01:18:44 +08:00   ❤️ 1
    按理说每个分片都要校验,但具体还是看业务

    借楼问一下楼下的大佬。。
    第一步的时候,如果提交的 md5 值被篡改,传了一个别人一个文件的 md5 值(场景是我得不到文件,但是已经知道 md5 值)的情况下,服务器是不是还是将该 md5 匹配的文件分给我?
    choury
        3
    choury  
       2019-04-07 08:47:38 +08:00 via Android   ❤️ 1
    @wunonglin 参考百度网盘的做法,不仅要 md5,还需要提供文件一部分内容,比如最前面或者最后面 512 个字节
    lizhuoli
        4
    lizhuoli  
       2019-04-07 10:45:54 +08:00 via iPad   ❤️ 1
    没有特殊定制需求,建议直接上成熟方案,比如 https://tus.io/
    自己实现,除了服务端以外,至少三个客户端需要配合( iOS/Android/Web ),费时费力还容易踩坑
    mamahaha
        5
    mamahaha  
    OP
       2019-04-07 15:38:25 +08:00
    @lizhuoli
    感谢,强大到令人发指,这个不是上传以后再合并,是一边上传一边合并,试了一下视频可以一边上传一边播放,太强了。
    jefferycai
        6
    jefferycai  
       2019-04-07 17:21:17 +08:00   ❤️ 1
    七牛云的断点,了解下
    my3157
        7
    my3157  
       2019-04-08 01:45:54 +08:00
    @jefferycai #6 对象存储的 Multipart 一般是先分成小文件上传, 然后服务端合并, S3 七牛 阿里 OSS 都是这么实现的
    smallgoogle
        8
    smallgoogle  
       2019-04-08 02:58:06 +08:00
    你大概差一个 WebUploader
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2783 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:50 · PVG 22:50 · LAX 06:50 · JFK 09:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.