传言

只要拿到文件的hash值即可将实现文件的分享,事实真的这么简单吗?确实阿里云盘的分享应该就是将要基于秒传实现,毕竟现在还没有出来所以这些都是预测

秒传

实验,传送一个将近10m的文件到底需要多久?

  • 文件预览

  • 实际上我已经基本参透了,阿里的上传原理才发的这篇文章,所以在这之前已经使用Python复现了阿里网盘的秒传,下面是测试代码

  • 测试文件夹并没有任何的文件

  • 结果

    • 一秒都没用到传输就完成了

原理

  • 前端预计算hash值,但不完全hash,取1kb先计算进行hash

  • 到后端去匹配

    {"drive_id":"#设备id","part_info_list":[{"part_number":1}],"parent_file_id":"#文件夹id","name":"#文件名","type":"file","check_name_mode":"auto_rename","size":"#文件大小","pre_hash":"#取1kb大小文件hash1计算"
    }
    
  • 如果冲突返回的状态码为409

  • 如果冲突就发送妙传指令,因为已经存在了,所以就不用前端再次通过网络传送文件到阿里的文件服务器了

  • 拿着该文件的信息加到我们自己的文件列表数据库中完成秒传

既然秒传能实现那分享不是水到渠成?

  • 拿到hash那我不就可以拿到任何文件了吗?那这样安全吗?你能想到阿里当然能想到了。

阿里如何避免拿到hash就可以拿到文件的呢?

  • 先看看请求参数

    {"drive_id":"#设备id","part_info_list":[{"part_number":1}], "parent_file_id":"#存放地址","name":"#文件名","type":"file","check_name_mode":"auto_rename","size":"#文件大小","content_hash":"#完整的文件hash1","content_hash_name":"sha1","proof_code":"#通过token计算的到的范围,截取文件后得到的base64值","proof_version":"v1"}
    
  • 就一点你确确实实有该文件,我想让你从该文件的任何地方获取一段字节码,你应该都能给我,然后和后端的已经存在的文件作比较,确实相等,我认为你确认拥有该文件,允许访问该文件,将文件秒传给你

  • 如何保证真的随机获取?且每个人唯一?token具有唯一性和时效性再合适不过了,阿里通过token计算要获取哪段的字节码

  • 如果要你想要分享怎么办?那你就必须使用一台公网服务器,告诉我你要的文件、你的token,我这边确实有该文件,通过token得到随机范围,截取文件得到对应base64,返回json发送请求,完成秒传,分享。

先这样吧!后面我会讲,如何抓包,如何一步步复现的。

好家伙?阿里网盘的分享功能已经出来了?相关推荐

  1. 阿里云盘如何分享压缩包_阿里云盘能分享压缩包吗?

    网盘的分享功能可以说是我们使用最多的功能之一,大家都知道百度网盘的功能很强大,不仅可以分享软件.视频.文档.还可以分享压缩包,但是由于百度网盘的尿性大家心里都清楚,现在大家都已经开始转战不限速的阿里云 ...

  2. 网盘用户分享独播剧链接 百度未及时封禁一审被判赔偿百万余元

    [TechWeb]12月22日消息,据海淀法院官方微信发布的消息,近日,海淀法院宣判了原告优酷网络技术(北京)有限公司诉被告北京百度网讯科技有限公司侵害作品信息网络传播权纠纷一案.法院判决百度公司赔偿 ...

  3. 网盘(结合百度网盘/阿里网盘)

    文章目录 简介 传输列表(难点) 权限设置 文件列表 选择框和文件详情 分享 下载 删除 重命名 复制 移动 回收站 文件分享列表 分享列表 分享详情 分享接收页面 私密分享 具体分享内容 简介 结合 ...

  4. 阿里云盘的分享限制,用这个软件终于解决了

    小伙伴们注意:公众号的推送机制不再按照时间前后推送了,微信公众号信息流乱序.君哥建议大家把科技毒瘤君公众号置顶(设为星标⭐),以便第一时间看到推送,非常感谢~,方法如下图: 阿里云盘大家应该已经不陌生 ...

  5. 邓西百度网盘批量分享工具

    简介: 邓西百度网盘批量分享工具可以用来分享百度网盘上的资源文件,通过这款软件用户可以更加轻松方便地将自己网盘中的资源分享给其他用户,支持批量分享的操作,非常适合需要分享很多文件的用户,如果一个个分享 ...

  6. PHP仿百度网盘文件分享dzzoffice网盘系统源码

    简介: 1.断点续传功能. 市面上许多所谓的断点传传基本没有完美的,本源码经过修复,完美实现了断点.续传功能. 切片:大文件分成1MB大小的小文件,服务器上传无压力,切片文件合并无压力. 市面上许多切 ...

  7. 【Android工具】更新小米电视安装小白云盘观看阿里网盘视频资源方法

    微信关注公众号 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 之前分享过两篇关于安卓电视看网盘资源的方法: [Android工具]安卓TV云存 ...

  8. 【阿里云盘资源分享:FPGA工具及相关数据资源高速下载】

    阿里云盘资源分享:FPGA工具及相关数据资源高速下载 FPGA工具及相关数据资源高速下载 第一步:下载阿里云盘 第二步:使用方法 下面都是资源列表 FPGA工具及相关数据资源高速下载 第一步:下载阿里 ...

  9. Linux 服务器上传下载文件到阿里网盘

    1 查看Linux系统架构 dpkg --print-architecture 2 下载安装(根据系统版本安装) 2.1下载地址 https://github.com/tickstep/aliyunp ...

  10. 阿里云网盘内测申请表,阿里网盘内测资格申请

    阿里云|阿里云网盘内测申请表 阿里云网盘内测开启 填写申请表获取邀请码 如果你是网盘的重度用户,欢迎加入到网盘内测组,我们需要像你一样可爱的小伙伴深度使用产品,并提出建议. 如果你有时间并且感兴趣,那 ...

最新文章

  1. Flink在美团的实践与应用--大数据技术栈15
  2. LTE网元间控制面协议
  3. JavaScript扩展运算符(...)
  4. QT的QLineSeries类的使用
  5. 5.1 内存模型基础
  6. 远程连接桌面不能全屏显示的解决方法
  7. BZOJ 1051 || POJ 2186 受欢迎的牛 Tarjan
  8. Otsu算法原理及实现
  9. 深度学习如何入门?知乎
  10. 在web服务器启动时: java.util.zip.ZipException: error in opening zip file
  11. docker安装mysql redis_使用docker安装mysql和redis
  12. java怎么与数据库连接?
  13. sql2008转到sqk2000的步骤
  14. 讲讲NVivo11的版本细节
  15. matlab 基于拉依达检验法(3σ准则) 实现多类别多参数的批量检验异常值与异常样本
  16. python opencv打开摄像头,截图保存
  17. js数据类型强制转换--转换为String
  18. 网络应用之JavaScript
  19. Android Studio 4.2 中Button的Backgroud背景设置默认为蓝紫色且无法修改的问题,及Button控件中英文字母全部默认显示为大写的解决方法
  20. mysql 使用if函数实现多条件动态查询

热门文章

  1. CPU超频烤机温度多少算正常?
  2. 传奇GOM引擎授权过期解决方法.
  3. iphone和mac互传文件_华为手机连接苹果电脑文件传输教程:一键文件互传、备份和恢复...
  4. 基于python+django框架+Mysql数据库的疫苗预约系统设计与实现
  5. 麻将判断胡牌 java_麻将基本胡的算法——Java
  6. 揭露富爸爸背后真正的秘密
  7. 中国IT公司百强排名
  8. Python语言为何如此流行?
  9. Docker安装、配置国内镜像加速器
  10. word计算机背景图简约,无水印word背景图片,有,可能是我见识太少