onedrive2tridrive.AYAYA.22.11.02

onedrive转三盘的缝合脚本基本上获得了空前的成功,除了一些无关痛痒(大嘘)的小bug,比如文件名又搞错了(半恼🤔

所以我跑了两个示例文件,一个是标准(大嘘)8GB包,一个稍微小些,也有3.13GB了,从日志文件里读出用时:

8GB文件下载:

real 0m50.328s
user 0m9.566s
sys 0m15.681s

8GB文件上传度盘:

real 2m59.682s
user 0m6.248s
sys 0m15.409s

8GB文件上传discord drive:

real 5m50.710s
user 3m1.945s
sys 2m3.187s

8GB文件上传guilded drive:

real 3m13.696s
user 0m2.694s
sys 0m38.216s

3.13GB文件下载:

real 0m22.520s
user 0m3.898s
sys 0m6.749s

3.13GB文件上传度盘:

real 1m19.815s
user 0m2.371s
sys 0m3.778s

3.13GB文件上传discord drive:

real 2m18.833s
user 1m10.423s
sys 0m44.489s

3.13GB文件上传guilded drive:

real 0m59.976s
user 0m0.942s
sys 0m11.606s

现在看来,将度盘上传线程设成64线程之后跑出了超过150MB/s的逆天速度,但最后10MB居然花了一分钟以上才整完,总体时间居然和32线程没啥太大差别(恼🤔而这个测试里discord drive上传时间过长,也是因为这个测试用discord频道只有⑨个线程,基本上生产频道也就两三分钟(悲🤔

更有意思的是,翻以前的日志可以看出,生产频道里其实guilded drive速度比discord drive要慢,因为它有明显的难以忽略的tar分片准备overhead(恼🤔算下来基本上一个8GB文件需要花10分钟左右才能处理完,一个线程一小时只能处理5到6个8GB文件,github actions的一次最大运行时间只能处理最多36个文件🤔以现在的8线程模型来搞,一次最多可以处理2304GB文件,noice🤔

马上,这玩意就可以实战了,我估摸着再过不到10小时,cuties impact就更新3.2了,刚好可以用来处理客户端打包和部分截图(确信🤔

thonkhida

话说回来我到今天都没打完须弥archon quest前四章,估计也没法第一时间橄榄散兵机器人了(悲🤔

也许我这几天就想冲完,但我在更新日志里看到一句话:图形方面的优化,反锯齿效率更高,也就意味着帧率也许会有提升🤔那我还是再稍稍⑧🤔

但无论如何,我至少第一章算是打完了🤔它这个第一章可以说是非常臭非常长了,而且以进入须弥城装备上某终端为界可以分为泾渭分明的两部分,前半部分都是在须弥郊外不到几百米的一个小村子里,和k-kawaii collei chan还有须弥aloy玩儿,其中还有一两小时在探索一个在须弥和稻妻之间切换的迫真秘境🤔

顺便一提时长十个甚至⑨个小时的须弥巨型支线arcana impact并不需要主线任何进度,只要人能到须弥就能玩,有意思🤔

进入须弥城之后才算是正式进入了archon quest,荧酱到处打听如何与waifuhida见たま的一面,很不幸的是须弥没人知道waifuhida,没人喜欢waifuhida,更没人关心waifuhida(悲🤔

接下来荧酱在找了114514壬之后终于找到了一个号称是waifuhida信徒的萌妹,然后又认识了nilou chan和一个有火神之眼的喵酱,这些人是须弥仅剩不多的waifuhida信徒,他们有的出钱有的出力筹办了一节庆祝waifuhida生日的什么花神节来着🤔喵酱一开始只是某萌妹亲爹雇的保镖,结果也半推半就便乘了waifuhida信徒(迫真🤔

但这群人也不知道waifuhida在哪里之类的,所以喵酱牵线让荧酱认识了驻扎在须弥城的佣兵头子,他要么是无神论者要么早就没有神了,反正须弥人用的那个什么什么终端他是用不了的,所以也没法搞到消息了(悲🤔但他知道某港口正在竞拍一个申必物品,让荧酱和paimon去那里碰碰运气🤔

到了某港口后,荧酱和一群信仰沙漠里的赤王的魔怔佣兵交易,在完全不知道那玩意是啥的情况下掏出了50万mora来买那玩意,,,的消息,差点被骗(恼🤔接下来一个应该叫做alhaitham的须弥学者出来帮忙,帮他们要回了mora🤔考虑到荧酱连那玩意是啥都不知道就想去搞到它,alhaitham最终决定帮他们搞那玩意,因为他也要搞到那玩意研究,只不过他们得先去dori chan那儿买点东西🤔

所以荧酱就去dori chan那里买了一大堆被称为罐装知识的申必玩意回来了,然后alhaitham就在港口外找了个空地教荧酱如何使用这种罐装知识光速学习某种战斗技能,根据前后荧酱战力的对比,他得出了极其生草的结论:这玩意只值0.072%的战力提升(半恼🤔

然后alhaitham让荧酱再去dori chan那里买东西,不过这次是情报:他们要找的红色申必罐装知识到底在哪支佣兵手里🤔dori chan偷偷溜进去拍了一张照片,显示那玩意其实就在之前骗过他们的魔怔佣兵手里(确信🤔

第二天alhaitham按照约定和那群佣兵见面,只见他们的头子貌似使用了那个红色罐装知识,直接变魔怔了,开始痛击队友,直到alhaitham瘫痪了他的终端才停🤔接下来须弥条子抓人的时候,alhaitham偷偷藏起了魔怔佣兵头子身上的红色罐装知识,再和荧酱他们告别,所以连荧酱都不知道这事(确信🤔

这一部分archon quest就这么结束了,可以说是作为横跨三个地区的任务,这里面塞进去了114514个设定(确信🤔接下来几个archon quest就简单多了,第二章完全就是一个一个一个一个花神节啊啊啊啊啊,据说是stein gate的大型parody现场🤔第三章大概讲waifuhida建议他们往sages里面插入内应,结果发现愚人众果然中出了须弥政治,而且和稻妻那种愚人众和奉行苟且坑raiden不同,在须弥的愚人众可是和sages深度勾结的,他们在一起直接撸了一个新草神出来,而且散兵就是这个新草神的肉身(确信🤔waifuhida在这一系列过程中被识破,然后被彻底困住,再也没法黑进katherine机器人里到处逛了,只能暗示荧酱去沙漠接着冒险(悲🤔第四章基本上全都在沙漠里,讲了一下须弥历史,没啥好说的(迫真🤔

顺便插一句,有一说大草神其实变小了两次,第一次是剧情里擦赤王屁股,另外一次就是带灾变,之后草神就便乘了waifuhida,并被sages带去关禁闭(悲🤔

luminethonk

迫真总结下来,须弥之所以waifuhida能够最终得救,其实还真的就是因为荧酱每到一个新地区就要和当地神见一面的强烈愿望(确信🤔不然,就算waifuhida帮忙,光凭那群waifuhida信徒是怎么都翻不了天的,他们只能在一个一个一个一个花神节里被收割,便乘散兵机器人的燃料啊啊啊啊啊(全恼🤔

更别说四章archon quest下来,荧酱其实自觉或者不自觉地团结了nilou chan为代表的waifuhida一般通过信徒势力、cyno为代表的须弥执法部门势力和alhaitham为代表的须弥(仍然有良知的)学者势力,牵强地说甚至还有喵酱为代表的沙漠民或者说佣兵势力🤔如果没有荧酱,这群人基本上没什么可能凑一块的,所以荧酱在archon quest里面的作用没法像蒙德璃月那样忽略不计了(喜🤔

他们也许在最后一章一齐橄榄邪恶的须弥sage势力,并橄榄他们造出的神🤔那还有什么好说的,只要waifuhida一登基,那群和愚人众勾结的sages还不得由cyno出面,一个一个一个一个抓起来终身监禁啊啊啊啊啊🤔

dudiskthonk.22.10.30

赶在这个月结束之前终~于把onedrive转度盘的github actions脚本给写完了🤔在onedrive转discord/guilded drive脚本的基础上稍微改了点东西,比如考虑到度盘根本不需要往discord频道里上传任何东西,直接来一个发送日志的语句就vans了(确信🤔

参数方面可能需要注意一下,比如onedrive其实文件夹格式啥的也和度盘一毛一样,所以完全可以提取出文件名,再提取出它前面那个文件夹的名字,这样就可以将这两个参数填进pcs-go的语句里了(确信🤔

随便找了个8GB文件测试了下,github actions上传度盘的速度居然高达⑨0MB/s,从某种程度上来说居然和它上传discord drive和guilded drive的速度几乎一样快🤔我无端猜测这玩意在存储vps上表现差劲有可能是网络问题,也有可能是因为存储vps用的不是固态,而github actions的机子哪怕只有50GB可用空间也用的是固态(恼🤔

よし,居然如此,那就直接上生产(大嘘)环境了,也就二十几个文件(确信🤔一个小时之后所有线程跑完了,居然还有12个文件没上传上去(恼🤔一看日志,它们要么429要么只下载了一半(全恼🤔

不过这些都是好排除的,429的肯定完全就不会出现在度盘里,后者肯定会把.aria2文件也上传上去,就像我的onedrive转discord/guilded drive一样(确信🤔单线程重试就vans了(确信🤔

这也许说明onedrive可能的确不是很适合用⑧个线程来草,再说了它现在一个8GB文件下载只用不到一分钟,上传也只用不到三分钟,最多4分钟就能搞完,文件比较少的话我还是单线程撸⑧🤔

又一个小时过去之后,,,现在居然还有一个文件没上传上去?直接打开这个文件的oneindex链接,好家伙现在不是429了,而是直接提示文件被ratelimited,一个小时后再下(悲🤔

好,这次测试就这么完成了,感觉还行(迫真🤔

thonk

现在看来,我应该可以把度盘上传、discord drive上传和guilded drive上传全たま合并到同一个脚本里,一个文件用三遍,因为它们上传的速度貌似都是一个数量级的,嗯讲的话度盘的速度可能还会比discord drive快些,但应该不会超过guilded drive(确信🤔这么搞可能还有一个额外的好处,能延长从onedrive上下载每个文件的间隔,让它ratelimit得轻一点(迫真🤔

同理开启每个github actions线程时也可以每分钟乃至每两分钟才开启一个(确信🤔

文件名方面也好办,先用度盘格式上传一遍,然后改名成discord/guilded drive格式就vans了(确信🤔

现在还有一个可能需要解决的问题,尽可能自动的下载错误处理🤔给脚本加上检测下载后文件状态的功能,它能想办法识别aria2c的下载结果,如果是全OK的话就下一步,不然的话就删掉文件重新下载,或者sleep上个一分钟再重新下载啥的🤔

dudiskbitte.22.08.17

群里有人发了一个sex syndrome里某个叫做近卫的小乳房萌妹的全集度盘链接🤔

一般来说我不会用我的度盘解析脚本处理这种玩意的,因为我去年刚做这个脚本的时候,就知道它没法用来解析unicode文件名,尤其是这个链接里还全都是各种申必日文字符时🤔但如果是近卫的话,那我倒是想试一试(迫真🤔

果然,它根本解析不出任何东西🤔所以我今天干脆改进下这个脚本得了(半恼🤔

bugfix

首先我需要解决它返回的json里全都是\uXXXX这种玩意的问题🤔这个还算比较好办的,比如先用一个变量保存下度盘api返回的结果,然后用echo -en取代echo来将其塞进解析各种参数的管道里,这样它应该就能还原文件名了(确信🤔

接下来这个脚本还有问题,对一个文件名里充满[]的文件,它可能读到]就不再解析后面的文件了🤔在我的114514次调试之后,我发现是grep的问题,最后设置了一个贪婪匹配,这次所有文件都被解析了出来🤔

但至少我最怕的递归解析部分是完全正常的,我以前用pascal编程的时候,那狗逼玩意只要一递归就出问题,搞得我现在每次写递归都担心它能否按预期运行(恼🤔

现在文件数目是对的,但文件名很多都没有解析出来(恼🤔我接着排查,发现是我写的上古grep语句的问题🤔一年前我大概喜欢用grep -Po的方式来检索json里的某个键值,但现在我完全不用这种低级方法,我现在都是先将逗号便乘回车让每一个键值便乘一行,然后直接用一个不加任何参数的fixed grep(当然不fixed也行,反正我也没写什么正则表达式)来筛选出含有某个键的行🤔

这种方法可以筛选出值里有任何奇怪字符的行,而老办法遇到奇怪字符可能就搞不出任何结果了🤔本质上来说,老办法用到了正则表达式,所以有正则表达式法的各种缺陷,比如在此处它就有可能直接被某个申必字符橄榄🤔而我现在搞的这一套,本质上来说利用了源字符串中的数据结构信息(比如无论json树的结构如何,所有键值对之间一定会用一个逗号分隔),所以能够在不用任何艹蛋正则表达式的情况下完成解析(确信🤔

接下来还有一个问题,这个脚本解析出来的文件路径前面还包括一坨什么parent_dir,我应该返回的路径是这个路径减去parent_dir,但我发现脚本里删除这个子串的操作并没有成功🤔其实是因为parent_dir和json别的地方不同,它居然用了url encode而非json encode来表示/,难怪我替换不出来🤔我自从用echo -en处理json encode之后,我基本上把所有的url decode全部删了,看来至少在这个变量处我得加回来(🤔

另外该填进aria2c的--dir参数里的文件夹路径,我发现也没有配置对,它貌似并不能删除后面的文件名,非常有可能是因为文件名里面有什么奇奇怪怪的字符(确信🤔那么,我干脆将它最后一个斜杠和后面的所有内容删掉得了🤔哪怕在最极端的情况,也就是分享的不是文件夹而是一堆文件时,它应该也会剩下一个./塞进--dir(确信🤔

至此,这个脚本已经改进完了,我也拿它解析出了所有近卫的片子链接,而且保留了所有目录结构🤔现在,我只需将其上传到我的vps,bash它,很快度盘里面这个文件夹是什么样,我本地也会是什么样了(确信🤔

extras

除此之外,我还给这个脚本加了一点点功能,比如现在它第三个参数是options🤔当然我并没有写什么正经参数处理,现在这部分options里只要包括连续的关键词单词就可生效,比如包括一个dryrun就可以实现不解析文件链接,而是用一个占位符来表示文件链接,生成的脚本仍然可以下载,但下下来的东西只能体现目录结构🤔discord drive相关部分也被我整成了一个option,只要包括discorddrive,它生成的脚本就不再尝试恢复目录结构,而是将文件统一放在temp目录里面,而将路径便乘文件名,斜杠被点替代🤔至少dudisk2discord脚本里面就是每次下载后都将temp目录里的所有东西都上传到discord drive一遍并删除它们🤔

more problems

现在它用来处理单文件分享链接可能会有点问题,parent_dir会便乘一个叫做.zip或者诸如此类的玩意,导致最后生成的脚本里,--dir会便乘..zip这样的极其令人迷惑的东西(恼🤔

可能它需要特别的处理,比如当检测出它是这坨寄吧时,直接强行便乘./🤔但我现在懒得测试了,因为我还在impact cuties,我感觉这次活动搞不好打不完了(全恼🤔

gpupv.22.08.16

今天我突然看到极客湾也开始玩什么四人一机了🤔我对gpu虚拟化技术向来有比较高的兴趣,所以我看了下,他那个视频用到的应该是hyper-v的gpu虚拟化🤔

那玩意我以前应该介绍过,用起来相当灵活,没有其他负载的话虚拟gpu基本上和主机gpu性能差不多(其实,开启hyper-v后所谓主机也会便乘一个大虚拟机),有其他负载的话各个负载自己抢夺资源(确信🤔

但那个视频最有意思的是,他们最后用parsec和另外一款串流工具连上虚拟机玩了一把三排,另外一个没有排上的在虚拟机里跑3dmark和cinebench卡死那三个🤔原来极客湾也玩parsec啊(意味深🤔

parsecthonk

他们折腾到最后发现网上已经有全自动配置gpu虚拟化的powershell脚本了,好巧不巧,这个脚本是一个parsec的开发者做的🤔项目已经在github上开源了,叫做Easy-GPU-PV🤔

我打开看了下,发现它自动化程度还是非常高的,只需要指定一张win10的iso镜像,就能自动完成从设置hyper-v虚拟机参数到创建虚拟机到安装系统和驱动到安装parsec的全过程,甚至说是只需要等15分钟,虚拟机就会出现在parsec的主机列表里🤔

当然,最后一步我是持怀疑态度的,因为以我自己配置parsec的经验,登录parsec需要用proxifier拐,登录后也得在配置文件里面写入代理参数,它这个自动脚本准备如何解决parsec中心服务器在中修被墙这件事🤔除非,它其实可以将配置文件也自动加载进去,而且登录的时候直接从主机拷某种登录凭据过去,再对这些配置文件进行某种申必重新初始化操作生成一个新的peer id(我现在只知道一种生成新peer id的方法,就是删掉所有配置文件重新登录🤔

这么搞还有一个额外的好处,hyper-v的gpu虚拟化一直以来有一个问题,就是它得关掉什么增强屏幕会话,导致它基本上,只能用rdp来连虚拟机,而非像vmware workstation那样直接在一个窗口里玩虚拟机的游戏🤔换句话说,开了gpu虚拟化的hyper-v虚拟机无限接近于一个无头系统(确信🤔而rdp打游戏的体验那就不用多说了,此时用parsec取代rdp就太寄吧爽了,不仅可以4k 60fps,还能在自家局域网外打游戏,四舍五入算一个私有geforce now了(确信🤔

thonkeqing

另外,现在gpu虚拟化还进入了下一个阶段,那就是使用nvidia显卡自带的虚拟gpu功能🤔

话说nvidia一直以来和gpu虚拟化的一般通过用户极其不对付,因为在它看来,gpu虚拟化是只有grid和某些高端quadro等黑色高级显卡才能使用的功能🤔而所有新出的nvidia显卡,至少从⑨代(maxwell)开始,都有支持gpu虚拟化的硬件,它只是在驱动层面简单粗暴地阻止用户玩gpu虚拟化,无论是gpu直通虚拟机,还是所谓的虚拟gpu(恼🤔

以前我看到有人魔改显卡pcb板上的某些电阻,从而改变pci id让nvidia的死🐴驱动认为插入的是一张quadro,从而让gpu直通虚拟机用🤔或者用nvidia-vbios-vfio-patcher这样的玩意刷vbios(这玩意貌似只支持10系卡🤔但今天我看到了一个叫做vgpu_unlock的神奇项目,它也是魔改pci id,但它使用了一种极其巧妙的方法:hook内核模块🤔

具体来说,他们通过逆向工程等方法,发现nvidia驱动(以内核模块的形式存在)每次使用虚拟gpu功能时,会去读某段和显卡硬件相关的内核地址空间(如果我没记错的话,x86的所有io设备都是通过在内存中占据一片地址空间的方式被处理器使用的,使用io和读写内存的汇编语句应该没啥差别),从中读取两个加了密的申必参数,解密之后值就是pci id,然后通过比对pci id来判断要不要给开gpu虚拟化功能🤔所以他们用另外一个内核模块hook了这个内核模块,这样每次nvidia的内核模块要调用memcopy函数读这两个参数时,就先去解密这两个参数获取nvidia内核模块原来获取的pci id,再用其对应型号的grid卡的pci id给它重新构造那两个参数并返回给它,这样它解密后,发现是grid的pci id,いいよ!来いよ!把虚拟gpu塞进这些虚拟机的虚拟pcie槽里!pcie槽里!!(错乱🤔

而这个魔改内核模块如何知道该给nvidia的内核模块返回什么pci id?🤔他们又写了一个应该是用python实现的用户空间守护进程,用来检测这台机子上装的所有nvidia显卡,用它内置的数据库来判断这些显卡是否真的支持虚拟gpu,如果支持的话,它对应的grid显卡又应该是什么型号,也就是什么pci id应该替换成什么pci id,然后把这个信息通过syscall传递给魔改内核模块🤔

这玩意反正比魔改显卡pcb高级多了,至少它没有烧坏显卡的风险(确信🤔反正无论如何,此时迫真模仿linus竖起中指fuck you nvidia就vans了(吴慈悲🤔

dudiskAYAYA

与此同时,到今天积压在某些2.5寸sas硬盘里面的截图8GB档实在是太多了,我得开一次度盘转discord(恼🤔

上了某个月度共享账号,一个链接都没解析出来,换什么ip都是如此(恼🤔这可能说明月度账号就是不适合干解析,那么换我大号呢?貌似可以解析出来🤔

我肯定不会用大号解析,我得去买个会员🤔然而现在根本找不到什么20块钱左右的超级会员cdk,所以恐怕我只能接着去租4块钱一天的日抛账号了(悲🤔

但既然我又买了日抛,那我不整完今天的将近1TB存货外加上个月积压的玩意,那肯定是说不过去的🤔这些东西加起来到了26线程,这么说吧,26线程全开时,这狗逼玩意能卡到每个线程一两秒才完成一次请求(半恼🤔

好在它们几乎全解析完了,而且这些加起来4TB的玩意不到4个小时就全部完成了转存discord drive🤔不错,那我再安排4TB如何?🤔

现在这4TB也全部解析完了,而且也在转存中,不错,我今天一天就搞了8TB🤔现在居然只剩三个账号就彻底搞完了,考虑到这些玩意其实不完全是图片,加起来可能又是个4TB,最多5TB🤔接下来我能不能再搞第三波,恐怕就得看它能不能解析出来了,实在不行下个月再说(🤔

luminethonk

最后一波(迫真),顺便捎带一个服务器备份,还真是5TB🤔而且更牛批的是,它第三次还能解析🤔那真滴牛批,我今天一天搞完了11TB的度盘转discord drive(确信🤔

如果这部分转存也没问题的话,那么至此我基本上搞完了我自从开始将图片上传到度盘以来所有图片的度盘转discord drive(确信🤔也许还有那么两个文件夹里的东西由于度盘的死🐴文件名censor,导致完全没法分享出去,但那我以后再说⑧🤔

接下来也许还可以处理点什么年度备份啥的,每个文件夹可能1TB的那种🤔话说今年也只有四个多月就结束了,到年底也许还得备份点什么寄吧玩意,当然那是三四个月后的事情了(确信🤔

另外我接下来的度盘存储可能会面临一些坑爹情形,比如我很多年前攒的度盘账号只剩下两个空的了,就算给上会员,也只剩4TB了(恼🤔上超级会员?我还没有做好这种准备(🤔

dudiskbitte.22.07.23

今天处理另外500GB的cuties impact客户端备份,但在此之前,我需要将这几天上传的东西全部转到discord drive上去,我才能将本地2.5寸sas上的压缩包删了(恼🤔

所以,这次我选择用bash的&来开多线程解析,而非像以前那样开八九个窗口🤔效果非常的可以,也许因为我解析的东西少,每次只解析一个文件夹,⑨个线程没有一个文件解析不出来🤔那还有什么好说的,撸就vans了(确信🤔

这次度盘转discord drive之后,我又感觉这玩意非常的行了(至少和前几个月相比),还想再弄一波🤔那就从前几天没搞完的部分来⑧,今天先折腾一个号的🤔这次平均每个线程解析25个文件,还是全搞定🤔

但接下来我不打算手动将所有线程生成的文件整均匀了,反正无论如何,每次生成完discord drive链接我都得手动归类它们,这次我干脆直接将所有线程的下载链接合并成一个带文件得了,由于它一个文件严格对应6行(包括一个换行符),直接用经典split8函数处理就vans了(确信🤔除了这玩意可能得改一下,不多加一行,也不多加6行,如果它生成了第⑨个文件,难道我没有第⑨个线程吗🤔最后生成的discord drive链接我也合并成一个带文件,然后grep出相应的分类(确信🤔

AYAYA

第三次解析整个账号,撸出来1⑨个线程,每个线程解析一个文件夹,一分钟后,所有线程都解析出了结果🤔这实在是太牛批了,这可是1⑨个线程啊,1⑨个🤔

看来,我貌似已经彻底摆脱了403问题(确信🤔基本上意味着我再也不用每天花4块钱买号了,我可以买一些长期的共享度盘会员,现在就坐看那个号解析多少TB的文件开始限速🤔

另外,从ip的角度讲,度盘解析最好在自家的本地机子干,vps这种固定ip机子很容易被橄榄,更别说vps离度盘的服务器很远了,干个啥都得一秒以上(恼🤔而在本地,又离度盘的服务器近(基本上几十到十几毫秒),又可以随便切换ip,还可以用本地十几个核心的cpu开十几个线程,这不比vps爽114514倍?🤔