Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

已失效 #48

Closed
362227 opened this issue Mar 6, 2023 · 41 comments
Closed

已失效 #48

362227 opened this issue Mar 6, 2023 · 41 comments
Assignees

Comments

@362227
Copy link

362227 commented Mar 6, 2023

已失效,请修复,估计又改了什么东西

@lloyd18
Copy link

lloyd18 commented Mar 6, 2023

是的,寄了,试了国内网络也不能上传

@RiverChu0
Copy link

算法更新了,客户端不升级都无法上传。

@orzogc orzogc self-assigned this Mar 6, 2023
@kdurov
Copy link

kdurov commented Mar 6, 2023

垃圾战5渣真是折腾的没完。

不知道有没临时替代方案。

@362227
Copy link
Author

362227 commented Mar 7, 2023

https://github.com/funcman/docker_115pc 我在用这个

@xwxbug
Copy link

xwxbug commented Mar 7, 2023

今天简单看了下115的客户端(版本 2.0.3.6)
希望对作者有帮助.
秒传接口
https://uplb.115.com/4.0/initupload.php?k_ec=一个KEY
使用[ec115.dll.ec115_encode]编码前的明文如下,编码后会返回这个k_ec和编码之后的内容

appid=0
&appversion=2.0.3.6
&fileid=文件SHA1
&filename=文件名
&filesize=文件大小
&sig=签名
&t=时间
&target=U_1_远程目录ID
&userid=数字用户ID
&token=计算出的token

sig签名的计算有变化:
sz_text = userid + fileid + target + "0"
result=sha1(sz_text ) ->转换为小写
sz_text= userkey + result + "000000";
result=sha1(sz_text ) ->转换为大写
其中使用的userid, fileid,target, userkey 均为大写

token的计算看起来也有变化
salt fileid filesize user_id time md5(user_id) app_version
Qclm8MGWUv59TnrR0XPg 190898C29E7630A44AA3AED78174EEC4165A545E 6930496 10000000 1678196255 64127d822211dfc22511a5f9aca66666 2.0.3.6
然后整个字符串md5(中间的空格只是分割了演示,请直接拼接),其中md5(user_id)是小写

如果URI没有k_ec参数,服务器会返回消息说无效签名.其它的接口(比如用户信息/列表)无需k_ec

如果有ec115.dll.ec115_encode的算法望告知,没仔细去看,直接调用了客户端的去计算.
因为只是粗略的看了一下,有错误望指正.

update:
如果响应如此:
{"request":"upload","status":7,"statuscode":701,"statusmsg":"sig invalid","pickcode":"","target":"U_1_2584847550000000000","version":"4.0","sign_key":"ba9c4f8e02534880df50e7ca82338013","sign_check":"2644110-2756230"}

如果statuscode为701,需要在真实文件中计算sign_check中的指定范围的SHA1(大写字母).作为重新提交的sign_val参数.sign_key参数原样返回.
token的计算修正如下
md5(salt+fileid+filesize+sign_key+sha1(sign_check_data)+user_id+time+md5(user_id)+app_version)

因此,现阶段看起来服务器返回的文件范围是随机无法预测的(因为没有真实文件).我收集了几十PB的数据的还没来记得导入.现在看起来已经彻底寄了.只能寄希望于APP/MAC/LINUX/TV版本的没有这种操作.
愿这些数据安息.

@RiverChu0
Copy link

期待大佬修复。虽然这次更改秒链不能用了,可是对于上传自己的文件还是可以的哟

@jerryandtom007
Copy link

期待大佬修复。虽然这次更改秒链不能用了,可是对于上传自己的文件还是可以的哟

是的,秒链弄成ed2k也一样可以秒离,主要还是上传。
T3rry7f/fake115upload.py 现在还可以上传,就是不能传大于5G的文件,我现在把大于5G的都用tar分卷然后在上传。

@RiverChu0
Copy link

期待大佬修复。虽然这次更改秒链不能用了,可是对于上传自己的文件还是可以的哟

是的,秒链弄成ed2k也一样可以秒离,主要还是上传。 T3rry7f/fake115upload.py 现在还可以上传,就是不能传大于5G的文件,我现在把大于5G的都用tar分卷然后在上传。

谢谢啊!我试一下看看行吗?

@orzogc
Copy link
Owner

orzogc commented Mar 9, 2023

T3rry7f/Fake115Upload#25
115的转存功能应该是彻底寄了

@jerryandtom007
Copy link

jerryandtom007 commented Mar 9, 2023

T3rry7f/Fake115Upload#25 115的转存功能应该是彻底寄了

00
渔佬那边似乎昨天晚上已经阶段性胜利了。
fake115uploader,能上传就行,-r和-m太好用了,又能文件夹又可以大文件给大佬点赞。T3rry7f/fake115upload.py只能传小于5G的...泪奔

@RiverChu0
Copy link

T3rry7f/Fake115Upload#25 115的转存功能应该是彻底寄了

00 渔佬那边似乎昨天晚上已经阶段性胜利了,能上传就行,-r和-m太好用了,又能文件夹又可以大文件给大佬点赞。T3rry7f/fake115upload.py只能传小于5G的...泪奔

大佬这个渔佬在哪看的,在可用的大于5GB的上传方案没?

@jerryandtom007
Copy link

T3rry7f/Fake115Upload#25 115的转存功能应该是彻底寄了

00 渔佬那边似乎昨天晚上已经阶段性胜利了,能上传就行,-r和-m太好用了,又能文件夹又可以大文件给大佬点赞。T3rry7f/fake115upload.py只能传小于5G的...泪奔

大佬这个渔佬在哪看的,在可用的大于5GB的上传方案没?

是我没有明确的断句,他那边是转存,不是上传用的
592767809

@RiverChu0
Copy link

T3rry7f/Fake115Upload#25 115的转存功能应该是彻底寄了

00 渔佬那边似乎昨天晚上已经阶段性胜利了,能上传就行,-r和-m太好用了,又能文件夹又可以大文件给大佬点赞。T3rry7f/fake115upload.py只能传小于5G的...泪奔

大佬这个渔佬在哪看的,在可用的大于5GB的上传方案没?

是我没有明确的断句,他那边是转存,不是上传用的 592767809

不是吧?这么牛逼?转存居然还有戏?

@vvlaw
Copy link

vvlaw commented Mar 11, 2023

T3rry7f/Fake115Upload#25 115的转存功能应该是彻底寄了

00 渔佬那边似乎昨天晚上已经阶段性胜利了。 fake115uploader,能上传就行,-r和-m太好用了,又能文件夹又可以大文件给大佬点赞。T3rry7f/fake115upload.py只能传小于5G的...泪奔

好像T3rry的不支持妙传?而且我试了传文件夹,出现了错误,貌似不支持整个文件夹下的文件上传?

@362227
Copy link
Author

362227 commented Mar 11, 2023

期待大佬修复。虽然这次更改秒链不能用了,可是对于上传自己的文件还是可以的哟

是的,秒链弄成ed2k也一样可以秒离,主要还是上传。 T3rry7f/fake115upload.py 现在还可以上传,就是不能传大于5G的文件,我现在把大于5G的都用tar分卷然后在上传。

谢谢啊!我试一下看看行吗?

fake115upload.py是不是也失效了,今天我用不了了,你能用吗

@362227
Copy link
Author

362227 commented Mar 11, 2023

期待大佬修复。虽然这次更改秒链不能用了,可是对于上传自己的文件还是可以的哟

是的,秒链弄成ed2k也一样可以秒离,主要还是上传。 T3rry7f/fake115upload.py 现在还可以上传,就是不能传大于5G的文件,我现在把大于5G的都用tar分卷然后在上传。

T3rry7f/fake115upload.py是不是5GB以内的也不行了 我今天晚上好好的在上传 突然不能上传了

@jerryandtom007
Copy link

jerryandtom007 commented Mar 12, 2023

Bump version 0.4.1.
deadblue大佬更新了0.4.1

@orzogc
Copy link
Owner

orzogc commented Mar 16, 2023

试试最新代码

@orzogc
Copy link
Owner

orzogc commented Mar 16, 2023

@xwxbug 我发现115的手机app只会请求一次initupload.php,是不是特别大的文件才会返回sign_check?

@kdurov
Copy link

kdurov commented Mar 16, 2023

@orzogc 试了下。有的文件上传会报错。但是随便找几个ytb视频下载下来测试上传没问题。不知道sig哪里问题。
测试的文件失败的均是超过5G的,但是超过5G也有成功的,不超5G的也有失败案例。
同一台VPS上上传,都是超过5G的文件。前一个上传成功后一个失败。搞不懂哪里问题。

2023/03/16 13:25:10 Cookies的值为:
2023/03/16 13:25:11 userID和userKey的值分别是:
2023/03/16 13:25:12 排序文件夹 0 成功
2023/03/16 13:25:13 秒传模式上传文件:rec.mp4
2023/03/16 13:26:52 initupload的链接是:https://uplb.115.com/4.0/initupload.php?k_ec=
2023/03/16 13:26:52 sig的值是:
2023/03/16 13:26:52 token的值是:
2023/03/16 13:26:52 k_ec的值是:
2023/03/16 13:26:53 秒传模式上传文件 rec.mp4 的响应体的内容是:
{"request":"upload","status":7,"statuscode":701,"statusmsg":"sig invalid","pickcode":"","target":"U_1_0","version":"4.0","sign_key":"","sign_check":""}
2023/03/16 13:26:53 秒传模式上传 rec.mp4 出现错误:fastUploadFile() error: 秒传模式上传 rec.mp4 失败
2023/03/16 13:26:53 现在开始使用断点续传模式上传
2023/03/16 13:26:53 断点续传模式上传文件:rec.mp4
2023/03/16 13:26:53 info的值:
{Endpoint:http://oss-cn-shenzhen.aliyuncs.com GetTokenURL:https://uplb.115.com/3.0/gettoken.php}
2023/03/16 13:26:54 OSS token的值:
&{StatusCode:200 AccessKeySecret: SecurityToken: Expiration:2023-03-16T14:26:54Z AccessKeyID: endpoint:http://oss-cn-shenzhen.aliyuncs.com}
2023/03/16 13:26:54 断点续传模式上传 rec.mp4 出现错误:multipartUploadFile() error: getBucket() error: bucket name  len is between [3-63],now is 0

能弄个跳过SHA1计算的临时debug用选项吗。上传时候随便丢个错误hash值?
每次上传都要等hashsum大文件非常慢(共享IO的VPS)

@orzogc
Copy link
Owner

orzogc commented Mar 16, 2023

@orzogc 试了下。有的文件上传会报错。但是随便找几个ytb视频下载下来测试上传没问题。不知道sig哪里问题。 测试的文件失败的均是超过5G的,但是超过5G也有成功的,不超5G的也有失败案例。 同一台VPS上上传,都是超过5G的文件。前一个上传成功后一个失败。搞不懂哪里问题。

2023/03/16 13:25:10 Cookies的值为:
2023/03/16 13:25:11 userID和userKey的值分别是:
2023/03/16 13:25:12 排序文件夹 0 成功
2023/03/16 13:25:13 秒传模式上传文件:rec.mp4
2023/03/16 13:26:52 initupload的链接是:https://uplb.115.com/4.0/initupload.php?k_ec=
2023/03/16 13:26:52 sig的值是:
2023/03/16 13:26:52 token的值是:
2023/03/16 13:26:52 k_ec的值是:
2023/03/16 13:26:53 秒传模式上传文件 rec.mp4 的响应体的内容是:
{"request":"upload","status":7,"statuscode":701,"statusmsg":"sig invalid","pickcode":"","target":"U_1_0","version":"4.0","sign_key":"","sign_check":""}
2023/03/16 13:26:53 秒传模式上传 rec.mp4 出现错误:fastUploadFile() error: 秒传模式上传 rec.mp4 失败
2023/03/16 13:26:53 现在开始使用断点续传模式上传
2023/03/16 13:26:53 断点续传模式上传文件:rec.mp4
2023/03/16 13:26:53 info的值:
{Endpoint:http://oss-cn-shenzhen.aliyuncs.com GetTokenURL:https://uplb.115.com/3.0/gettoken.php}
2023/03/16 13:26:54 OSS token的值:
&{StatusCode:200 AccessKeySecret: SecurityToken: Expiration:2023-03-16T14:26:54Z AccessKeyID: endpoint:http://oss-cn-shenzhen.aliyuncs.com}
2023/03/16 13:26:54 断点续传模式上传 rec.mp4 出现错误:multipartUploadFile() error: getBucket() error: bucket name  len is between [3-63],now is 0

能弄个跳过SHA1计算的临时debug用选项吗?每次上传都要等hashsum大文件非常慢(共享IO的VPS)

你再试试最新的代码

@RiverChu0
Copy link

试试最新代码

可以,上传本地文件成功!(非秒传文件),谢谢大佬的付出!

@kdurov
Copy link

kdurov commented Mar 16, 2023

@orzogc 试了下。有的文件上传会报错。但是随便找几个ytb视频下载下来测试上传没问题。不知道sig哪里问题。 测试的文件失败的均是超过5G的,但是超过5G也有成功的,不超5G的也有失败案例。 同一台VPS上上传,都是超过5G的文件。前一个上传成功后一个失败。搞不懂哪里问题。

你再试试最新的代码

彻底解决前能考虑弄个跳过计算hash的选项吗?乱丢两个值上去。因为要测上传大文件,每次计算都可能花很久。
另外能麻烦添加个查看版本号参数吗?现在上传时候添加 -v 参数也不会显示版本号。

@orzogc
Copy link
Owner

orzogc commented Mar 16, 2023

@orzogc 试了下。有的文件上传会报错。但是随便找几个ytb视频下载下来测试上传没问题。不知道sig哪里问题。 测试的文件失败的均是超过5G的,但是超过5G也有成功的,不超5G的也有失败案例。 同一台VPS上上传,都是超过5G的文件。前一个上传成功后一个失败。搞不懂哪里问题。

你再试试最新的代码

彻底解决前能考虑弄个跳过计算hash的选项吗?乱丢两个值上去。因为要测上传大文件,每次计算都可能花很久。 另外能麻烦添加个查看版本号参数吗?现在上传时候添加 -v 参数也不会显示版本号。

hash最好不要跳过,不清楚错误的hash值会不会引发问题 #9
版本号我看看怎么弄

@xwxbug
Copy link

xwxbug commented Mar 16, 2023

@xwxbug 我发现115的手机app只会请求一次initupload.php,是不是特别大的文件才会返回sign_check?

我自己实现的秒传中(从一个账号复制到另外一个账号,或者本地有真实文件的情况下),小文件看起来是直接成功的,初步观测小于100K左右(也许更小)?在写程序的时候,用的一个大约1M的文件,100%会随机抽查数据.因为接口是同一个,不大相信不同平台会有不同的处理.你可以生成几十斤的不同大小的小文件试试看.

@kdurov
Copy link

kdurov commented Mar 16, 2023

hash最好不要跳过,不清楚错误的hash值会不会引发问题 #9 版本号我看看怎么弄

虽然和这个接口无关。顺带问下,用了 -m 多分片上传的情况下是否进度条显示的速度就是非即时的?

@xwxbug
Copy link

xwxbug commented Mar 16, 2023

前面 @kdurov 的这种需要不断重复上传的情况非常普遍.比如我经常需要重新上传大约100T的数据,部分删掉了,部分新增了,大部分的没变.我是先整个生成一遍hash,cache下来.中途不断更新cache.当闲得蛋疼了,再秒传这个cache.这样可以减少每次上传需要重新hash一遍的次数.减少磁盘IO.作者可以考虑也这样搞一个选项.

当然,以前是没这需求的,我也是这几天瞎折腾的,以前秒传方便,生成个sha1文本丢几年也不着急.

@orzogc
Copy link
Owner

orzogc commented Mar 16, 2023

@xwxbug 我发现115的手机app只会请求一次initupload.php,是不是特别大的文件才会返回sign_check?

我自己实现的秒传中(从一个账号复制到另外一个账号,或者本地有真实文件的情况下),小文件看起来是直接成功的,初步观测小于100K左右(也许更小)?在写程序的时候,用的一个大约1M的文件,100%会随机抽查数据.因为接口是同一个,不大相信不同平台会有不同的处理.你可以生成几十斤的不同大小的小文件试试看.

新文件的话115也不可能知道sign_check的值,这岂不是可以随便给一个值?

@xwxbug
Copy link

xwxbug commented Mar 16, 2023

印象中新文件并不会返回statuscode为701,也就没有再一次的请求.直接转到了分片上传的阶段.随便给一个应该也是失败.你可以试试看.说不定能发现新大陆.(原理上来说,115没有的新文件不大可能秒传,只能老老实实上传).

观察到的情况是:115客户端先试试秒传,有服务器存在的文件就抽查数据,不存在的就老老实实上传.

@cafrew
Copy link

cafrew commented Mar 21, 2023

试试最新代码

可以帮忙编译一个exe吗,感谢~🙏

edit: 已取得最新代码运行,谢谢作者,太牛啦~

@fakedon
Copy link

fakedon commented Mar 21, 2023

海外服务器上传任何文件都会报下面的错误,不管文件大小超不超过5G

上传第1个分片时出现错误:oss: service returned error: StatusCode=400, ErrorCode=EntityTooLarge, ErrorMessage="Your proposed upload exceeds the maximum allowed size."

@orzogc
Copy link
Owner

orzogc commented Mar 21, 2023

海外服务器上传任何文件都会报下面的错误,不管文件大小超不超过5G

上传第1个分片时出现错误:oss: service returned error: StatusCode=400, ErrorCode=EntityTooLarge, ErrorMessage="Your proposed upload exceeds the maximum allowed size."

上传很小的文件(几十到几百Kb)也是这样吗?

@fakedon
Copy link

fakedon commented Mar 22, 2023

海外服务器上传任何文件都会报下面的错误,不管文件大小超不超过5G
上传第1个分片时出现错误:oss: service returned error: StatusCode=400, ErrorCode=EntityTooLarge, ErrorMessage="Your proposed upload exceeds the maximum allowed size."

上传很小的文件(几十到几百Kb)也是这样吗?

测试很小的json文件上传成功
都是使用-m的方式上传的

@orzogc
Copy link
Owner

orzogc commented Mar 22, 2023

海外服务器上传任何文件都会报下面的错误,不管文件大小超不超过5G
上传第1个分片时出现错误:oss: service returned error: StatusCode=400, ErrorCode=EntityTooLarge, ErrorMessage="Your proposed upload exceeds the maximum allowed size."

上传很小的文件(几十到几百Kb)也是这样吗?

测试很小的json文件上传成功 都是使用-m的方式上传的

上传大文件时用-parts-num参数设置比较大的分片数量试试

@fakedon
Copy link

fakedon commented Mar 22, 2023

海外服务器上传任何文件都会报下面的错误,不管文件大小超不超过5G
上传第1个分片时出现错误:oss: service returned error: StatusCode=400, ErrorCode=EntityTooLarge, ErrorMessage="Your proposed upload exceeds the maximum allowed size."

上传很小的文件(几十到几百Kb)也是这样吗?

测试很小的json文件上传成功 都是使用-m的方式上传的

上传大文件时用-parts-num参数设置比较大的分片数量试试

设置1、1000和10000报一样的错误,不知道是不是海外ip的问题

@jerryandtom007
Copy link

海外服务器上传任何文件都会报下面的错误,不管文件大小超不超过5G
上传第1个分片时出现错误:oss: service returned error: StatusCode=400, ErrorCode=EntityTooLarge, ErrorMessage="Your proposed upload exceeds the maximum allowed size."

上传很小的文件(几十到几百Kb)也是这样吗?

测试很小的json文件上传成功 都是使用-m的方式上传的

上传大文件时用-parts-num参数设置比较大的分片数量试试

外面的机器没有问题不管文件大小,更新后我一直正常使用

@362227
Copy link
Author

362227 commented Mar 22, 2023

-parts-num 我设置是40,成功率很高
5GB左右的,-u应该也可以

@fakedon
Copy link

fakedon commented Mar 22, 2023

海外服务器上传任何文件都会报下面的错误,不管文件大小超不超过5G
上传第1个分片时出现错误:oss: service returned error: StatusCode=400, ErrorCode=EntityTooLarge, ErrorMessage="Your proposed upload exceeds the maximum allowed size."

上传很小的文件(几十到几百Kb)也是这样吗?

测试很小的json文件上传成功 都是使用-m的方式上传的

上传大文件时用-parts-num参数设置比较大的分片数量试试

外面的机器没有问题不管文件大小,更新后我一直正常使用

老哥能说下用的哪里的机器吗

@SAOJSM
Copy link

SAOJSM commented Apr 3, 2023

海外服务器上传任何文件都会报下面的错误,不管文件大小超不超过5G

上传第1个分片时出现错误:oss: service returned error: StatusCode=400, ErrorCode=EntityTooLarge, ErrorMessage="Your proposed upload exceeds the maximum allowed size."

尝试最新的代码,
用加拿大、美国、日本的机器都没问题
-parts-num=48
文件大小11.92G
使用指令
fake115uploader -v -m "/文件路径"
测试使用秒传上传

@SAOJSM
Copy link

SAOJSM commented Apr 3, 2023

提供过程程式码,隐藏隐私data

2023/04/03 03:17:25 Cookies的值为:
2023/04/03 03:17:26 userID和userKey的值分别是:
2023/04/03 03:17:28 排序文件夹 0 成功
2023/04/03 03:17:29 秒传模式上传文件:/root/Aria2/SIRO-3179.m2ts.iso
2023/04/03 03:19:43 initupload的链接是:https://uplb.115.com/4.0/initupload.php?k_ec=
2023/04/03 03:19:43 sig的值是:
2023/04/03 03:19:43 token的值是:
2023/04/03 03:19:43 k_ec的值是:
2023/04/03 03:19:45 initupload的链接是:https://uplb.115.com/4.0/initupload.php?k_ec=
2023/04/03 03:19:45 sig的值是:
2023/04/03 03:19:45 token的值是:
2023/04/03 03:19:45 k_ec的值是:
2023/04/03 03:19:46 秒传模式上传文件 /root/Aria2/SIRO-3179.m2ts.iso 的响应体的内容是:
{"request":"upload","status":2,"statuscode":0,"statusmsg":"","pickcode":"","target":"","version":"4.0","fileid":0,"fileinfo":""}
2023/04/03 03:19:46 秒传模式上传 /root/Aria2/SIRO-3179.m2ts.iso 成功
上传成功的文件(1):
/root/Aria2/SIRO-3179.m2ts.iso
上传失败的文件(0):
保存上传进度的文件(0):

@SAOJSM
Copy link

SAOJSM commented Apr 3, 2023

T3rry7f/Fake115Upload#25 115的转存功能应该是彻底寄了

00 渔佬那边似乎昨天晚上已经阶段性胜利了,能上传就行,-r和-m太好用了,又能文件夹又可以大文件给大佬点赞。T3rry7f/fake115upload.py只能传小于5G的...泪奔

大佬这个渔佬在哪看的,在可用的大于5GB的上传方案没?

是我没有明确的断句,他那边是转存,不是上传用的 592767809

能提供下如何在DC找到渔佬吗?想和他讨论下怎么改程式码

@orzogc orzogc closed this as completed Jul 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests