V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fantasts
V2EX  ›  问与答

通过图床分发文件,是否可以直接游览器里实现下载合并。

  •  
  •   fantasts · 2020-10-13 21:59:14 +08:00 · 633 次点击
    这是一个创建于 1289 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面 python 代码用 js 重写应该没问题吧,图床支持 access-control-allow-origin: * 这样是不是直接就能在游览器里实现个下载器。

    def decode_png(self, data):
        img = Image.open(BytesIO(data))
        data = img.tobytes()
    
        sz = struct.unpack('<I', data[:4])[0]
        data = data[4:4+sz]
        return data
    
    def download(i, block_dict, f, offset):
        global succ
    
        url = block_dict['url']
        for j in range(10):
            if not succ: break
            block = api.image_download(url)
            if not block:
                log(f"分块{i + 1}/{nblocks}第{j + 1}次下载失败")
                if j == 9: succ = False
                continue
            block = encoder.decode(block)
            if calc_sha1(block) == block_dict['sha1']:
                with lock:
                    f.seek(offset)
                    f.write(block)
                log(f"分块{i + 1}/{nblocks}下载完毕")
                break
            else:
                log(f"分块{i + 1}/{nblocks}校验未通过")
                if j == 9: succ = False
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1104 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:46 · PVG 06:46 · LAX 15:46 · JFK 18:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.