首页 >>  正文

瓜网盘链接

来源:baiyundou.net   日期:2024-09-26

作者:sonatasss

原理

上传到网盘的每个文件,服务器都会校验MD5码。如果这个您上传的文件MD5码与已经存在于服务器里的文件的MD5码相同的话,网盘服务器将会判断成为重复文件,只需要复制副本保存在网盘上即可。这样实现了服务器的高效运作。

协议分析

因此一般厂商会使用多个HASH联合的方式。 下面列出常用网盘的HASH计算方式。

Ppikpak和迅雷云盘是一个计算方式

阿里云盘之前也是SHA1和115类似

可惜的是阿里云盘前两年年取消了秒传

应用场景

本地生成秒传链接,分享或发布

网上本地生成秒传链接的工具蛮多,我自己整理了一下做了个整合版

支持115、百度网盘、pikpak,支持单个文件或文件夹

自动遍历文件夹下所有文件,生成结果保存在脚本所在txt文件

生成链接不包含路径,有需要的自己改下吧

使用方式如图

python代码和打包的exe文件放在gitee

sonata1/network-disk-application

不知道为gitee啥链接不能过审那就直接把代码打下面吧

import os
import sys
import hashlib

def get_sha1sum(buffer):
   BUFFERSIZE = 128*1024
   sha1 = hashlib.sha1()
   sha1128ksum = None
   while True:
       data = buffer.read(BUFFERSIZE)
       if not data:
           break
       sha1.update(data)
       if not sha1128ksum:
           sha1128ksum = hashlib.sha1(data).hexdigest().upper()
   sha1sum = sha1.hexdigest().upper()
   return sha1sum, sha1128ksum



def create_url(filename):
   name = os.path.basename(filename)
   size = os.stat(filename).st_size
   with open(filename, "rb") as f:
       sha1sum, sha1128ksum = get_sha1sum(f)
   return "115://%s|%s|%s|%s" % (name, size, sha1sum, sha1128ksum)

def gcid_hash_file(path):
   h = hashlib.sha1()
   size = os.path.getsize(path)
   psize = 0x40000
   while size / psize > 0x200 and psize < 0x200000:
       psize = psize << 1
   with open(path, 'rb') as stream:
       data = stream.read(psize)
       while data:
           h.update(hashlib.sha1(data).digest())
           data = stream.read(psize)
   (path, filename) = os.path.split(path)

   return 'PikPak://'+filename+'|'+str(size)+'|'+h.hexdigest().upper()

def hash_f(pth:str,api:str='md5',block_size:int=1024*1024,head_size:int=256*1024)->list:
   with open(pth,'rb') as f:
       hsh=hashlib.new(api,f.read(head_size))
       head=hsh.hexdigest()
       while True:
           data=f.read(block_size)
           if not data:
               break
           hsh.update(data)
       return [hsh.hexdigest(),head,]

def _file(pth:str)->str:
   if mode == 'baidu网盘':
       _ll=[str(i) for i in hash_f(pth)+[os.path.getsize(pth),os.path.basename(pth)]]
       ans='#'.join(_ll)
       with open(mode+'_link.txt',"a+") as file:   #”w"代表着每次运行都覆盖内容
           file.write(ans+"n")
       return os.path.abspath(pth)+' :n'+ans+'n'
   if mode == 'pikpak':
       ans = gcid_hash_file(pth)
       with open(mode+'_link.txt',"a+") as file:   #”w"代表着每次运行都覆盖内容
           file.write(ans+"n")
       return os.path.abspath(pth)+' :n'+ans+'n'
   if mode == '115':
       ans = create_url(pth)
       with open(mode+'_link.txt',"a+") as file:   #”w"代表着每次运行都覆盖内容
           file.write(ans+"n")
       return os.path.abspath(pth)+' :n'+ans+'n'

def _dir(pth:str)->str:
   ans=list()
   for r,d,f in os.walk(pth):
       for i in f:
           ans.append(_file(os.path.join(r,i)))
   return 'n'.join(ans)

def mian(pth:str)->str:
   

   if os.path.isfile(pth):
       return _file(pth)
   if os.path.isdir(pth):
       return _dir(pth)
   return '没有此文件或者目录: "'+os.path.abspath(pth)+'"n'


sign = True  #标志位置为 True
while sign:
   
   ipt = input("1:115  2:baidu网盘 3:pikpak q:退出n结果会保存在脚本所在目录对应txt文件n请输入序号:")
   n = ipt
   if ipt ==  'q' or  ipt ==  'Q':
       sign = False  #标志位置为 False
       print("Thanks for playing!")
   if ipt in ['1','2','3']:
       temp_list= ['115','baidu网盘','pikpak']
       mode = temp_list[int(ipt)-1]
       if  os.path.exists(mode+'_link.txt'):    
           os.remove(mode+'_link.txt')
   while sign:

       f_ipt = input("请输入要生成"+mode+"秒传链接的文件或文件夹路径:")
       if f_ipt ==  'q' or  f_ipt ==  'Q':
           sign = False  #标志位置为 False
       else:

           结果 = mian(f_ipt)  
           print(结果)

115、百度网盘、pikpak垮网盘直接生成秒传链接

把某一家的资源迁移到另外一家

这里建议用alist配合115版rlcone挂载(不会挂载的同学可以参考系列另一篇文章)

就可以用上面的脚本生成链接了

需要注意 115和百度网盘都需要计算整个文件的HASH

也就是说相当于把文件完全下载到本地第一次

注意批量下载请求不要超过网站限制

另外还要注意传入方是否已经有这个文件了

几家网盘的体量都比较大,常规文件大部分都可以

其实做一个浏览器脚本更方便使用,不过没精力弄了

 这里顺便说下国外网盘

Google Drive,Jottacloud自带MD5信息,可以免下载快速生成百度云盘秒传链接  

OneDrive,Box,(还有115)自带SHA1信息,可以免下载快速生成115秒传链接  

工具暂时还没写。有需要的自行google下看看能不找到

上传工具

115:油猴脚本 115转存助手

百度网盘:油猴脚本 秒传链接提取

 PikPak:第三方网页版 

","force_purephv":"0","gnid":"9ee917a8cf95c8fda","goods_list":[{"goods_channel":"天猫精选","goods_cover":"https://p0.ssl.img.360kuai.com/t01f22e78c8df33b825.jpg?size=600x600","goods_link":"https://go.smzdm.com/60a6b7f268291ccc/ca_fz_0_0_0_0_0_0_0","goods_name":"阿里云盘超级会员12个月SVIP年卡8TB容量极速下载充值手机号","goods_pos":1,"goods_price":"198"}],"img_data":[{"flag":2,"img":[{"desc":"","height":"183","title":"","url":"https://p0.ssl.img.360kuai.com/t0102b6cfc8eb6c3fc5.jpg","width":"600"},{"desc":"","height":"271","title":"","url":"https://p0.ssl.img.360kuai.com/t01fbb4496d723d3f47.jpg","width":"600"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1676287846000,"pure":"","rawurl":"http://zm.news.so.com/e49fea53645b1369b3a3da4277e7ea70","redirect":0,"rptid":"beb884385daf5235","s":"t","src":"什么值得买","tag":[],"title":"非常规网盘研究 篇三:国内部分网盘秒传链接分析和互相转换

高常贷1346推荐一些老歌曲,六十年代到七八十年代的经典老歌. -
柯岚狐19750691987 ______ 使用百度网盘免费分享给你,链接是: 提取码:2xff2xff 该经典老歌有《鲁冰花》《月亮代表我的心》《小城故事》《烛光里的妈妈》《祝酒歌》

高常贷1346敬事房悠闲日常求完整版txt -
柯岚狐19750691987 ______ 链接: https://pan.baidu.com/s/1e1IC70iGMbKkfN0aIm4ElQ 提取码: cita该小说讲述了身为敬事房的大宫女,陆湘承担着宫廷婚前辅导的职责.后宫小主们个个努力学习力争上游,最是令老师省心.看着她们夜以继日地努力奋斗,陆湘表示宫廷生活真有趣,只想四平八稳地吃瓜看戏.偏生那个六皇子赵斐不求上进,厌学情绪严重.陆湘气得离宫出走,却被赵斐抓了回来.他把陆湘堵在门口,逼她手把手的进行教学.

高常贷1346关于田园风光的古诗 -
柯岚狐19750691987 ______ 楼主大大,顺便一提,您应该知晓陶渊明是著名的田园诗人.这是我从挑选出的田园诗.你就采纳我吧!~~代表作:饮酒(其五) 陶渊明 结庐在人境,而无车马喧.问君何能尔,心远地自偏.采菊东篱下,...

高常贷1346甄嬛传分集介绍剧情简介 -
柯岚狐19750691987 ______ 《甄嬛传》分集剧情: 第1集 公元1722年,雍亲王胤禛在年羹尧和隆科多的扶持下击败对手,登上皇位,改元雍正.年羹尧之妹华妃美丽而跋扈,专宠数年,仗着母家的势力,与皇后分庭抗礼.皇帝忙于朝政,数日未进后宫,太后为...

高常贷1346中国古代有哪些有名的兵器?请介绍 -
柯岚狐19750691987 ______ 18般武器:九长:刀、矛、戟、槊、镗、钺、棍、枪、叉;九短:斧、戈、牌、箭、鞭、剑、锏、锤、抓. 刀:金背大砍刀 门扇大刀 齐凤朝阳刀 象鼻古月刀 青龙偃月刀 银龙锁日月三挺砍山刀 三尖两刃刀 合扇板门刀 金背砍山刀 三尖两刃四窍...

高常贷1346瓜熟蒂落的反义词 -
柯岚狐19750691987 ______ 瓜熟蒂落-欲速不达

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024