|
发表于 2023-7-9 10:21:35
|
显示全部楼层
如果直链的话,一个方法可以不靠脚本批量转存:
function time(ms){
return new Promise((resolve,reject) => {
setTimeout(() => {resolve()},ms);
});
}
var long=[
"7d0c4b6c9c4931d117de9061ca784875#6ca063a4b34f3f30385b05d275deb0ef#66651464#测试.pdf", "8C9E08D5A14DE66468CC926880E12094#6B4302AFAF5F71F401FC94FEF10A32C2#11487738#测试2.pdf",
];
const delay = async () => {
for(var i = 0;i < long.length;i++){
var arr = long.split('#');
var s = "https://pcs.baidu.com/rest/2.0/pcs/file?app_id=266719&method=rapidupload&ondup=overwrite&content-length="+arr[2]+"&content-md5="+arr[0]+"&slice-md5="+arr[1]+"&path=/"+arr[3];
window.open(s)
await time(100);
};
};
delay();
用法:按F12打开开发者面板,点击控制台,然后将填写好秒传链接的代码复制进下翻的输入栏里,回车会连续打开几个新标签叶,返回一直显示ctime即为转存成功,然后一直ctrl+w关闭多余标签叶,进去个人页面会发现秒传文件全部转存到自己帐号里了
解析:
function time(ms){return new Promise((resolve,reject) => {setTimeout(() => {resolve()},ms);});} 函数声明,它是指接受一个时间参数 ms,表示执行要等待多少毫秒。函数的意思是返回一个 Promise 对象,在等待完指定时间 ms 后会使用 resolve() 方法来解决该 Promise。如果在等待期间出现错误,则会改为调用 reject 方法。
var long=[秒传链接1],[秒传链接2],[秒传链接3] 意为一个包含多个秒传字符串的数组 long。
const delay = async () => {for(var i = 0;i < long.length;i++){var arr = long.split('#');var s = "https://pcs.baidu.com/rest/2.0/pcs/file?app_id=266719&method=rapidupload&ondup=overwrite&content-length="+arr[2]+"&content-md5="+arr[0]+"&slicemd5="+arr[1]+"&path=/"+arr[3];window.open(s)await time(2000);};}; 这是一个delay异步函数,它会首先执行一个 for 循环,然后识别操作 long 数组中的所有元素。在每次循环中,它会将秒传代码元素用 .split() 方法拆分成四部分变量并构造一个新 URL,然后使用 window.open() 方法打开一个新标签页进入这个 URL,然后执行转存。后面它使用 await 关键字和名为 time() 的函数对以上执行进行延迟2000毫秒。这样可以确保前一个转存操作完成之后再执行下一次循环转存。
delay() 异步函数,在这里的作用是执行上方的代码然后返回执行结果。
总体来说,这段代码的作用是:循环遍历数组 long 中的秒传代码元素,为每个元素生成一个快速转存的 URL,并在新的浏览器窗口中打开这个 URL,以实现快速转存秒传文件的流程。 |
评分
-
1
查看全部评分
-
|