百度网盘5MB每秒-你本来就很快

简介: 把你的百度网盘速度提升到5MB每秒, 心动吗?这是百度网盘官方提供的方法, 只是一般人不知道,速度限制:实测非会员下载5MB/s

牙叔教程 简单易懂

先说结论: 不冲会员, 也可以达到5MB/S.


是MB大写B哦, B字节,

不是小b,比特;

这是百度网盘官方提供的方法, 只是一般人不知道,

速度限制:实测非会员下载5MB/s

现在我来跟你讲讲使用步骤.

第一步 打开网盘控制台

https://pan.baidu.com/union/console/applist?from=person

第二步 点击创建应用

网页右上角

第三步 填写资料

名字随便填

点击创建

第四步 创建失败

去认证一下

https://pan.baidu.com/union/apply?

第五步 创建成功

第六步 看文档

https://pan.baidu.com/union/doc/

第七步 选择授权模式

前两个都要填写域名, 最后一个不用填写域名, 所以我选择

设备码模式

第八步 获取二维码

const axios = require('axios');

const { AppID, Appkey, Secretkey, Signkey } = require("./config.js");


axios.get('https://openapi.baidu.com/oauth/2.0/device/code', {

 params: {

   response_type: 'device_code',

   client_id: Appkey,

   scope: 'basic,netdisk'

 },

 headers: {

   'User-Agent': 'pan.baidu.com'

 }

})

 .then(response => {

   console.log(response.data);

 })

 .catch(error => {

   console.log(error);

 });


 // {

 //   device_code: 'e85exxxxxxxxxxx38b',

 //   user_code: '6xxxxxxxxk',

 //   verification_url: 'https://openapi.baidu.com/device',

 //   qrcode_url: 'https://openapi.baidu.com/device/qrcode/2d0382exxxxxxxxxx93e1/6xxxxxxck',

 //   expires_in: 300,

 //   interval: 5

 // }

获取到qrcode_url以后, 复制该链接到浏览器, 然后就会出现二维码, 用你的手机扫码二维码授权

第九步 获取Access Token

const axios = require('axios');

const { AppID, Appkey, Secretkey, Signkey } = require("./config.js");


axios.get('https://openapi.baidu.com/oauth/2.0/token', {

 params: {

   grant_type: 'device_token',

   code: 'e8xxxxxxxxxxxxxxxxxx38b',

   client_id: Appkey,

   client_secret: Secretkey

 },

 headers: {

   'User-Agent': 'pan.baidu.com'

 }

})

 .then(response => {

   console.log(response.data);

 })

 .catch(error => {

   console.log(error);

 });

 // {

 //   expires_in: 2592000,

 //   refresh_token: '12xxxxxxxxxxxxxxxxxXw',

 //   access_token: '126xxxxxxxxxxxxxxxxJNeg',

 //   session_secret: '',

 //   session_key: '',

 //   scope: 'basic netdisk'

 // }

第十步 看下载文档

https://pan.baidu.com/union/doc/pkuo3snyp

第十一步 获取文件列表

async function getFileList() {

 try {

   const response = await axios.get("https://pan.baidu.com/rest/2.0/xpan/file", {

     params: {

       method: "list",

       dir: "/test",

       order: "time",

       start: 0,

       limit: 10,

       folder: 0,

       access_token: access_token,

       desc: 1,

     },

     headers: {

       "User-Agent": "pan.baidu.com",

     },

   });

   console.log(response.data);

 } catch (error) {

   console.log(error);

 }

}

我再目录test传了一个46.53MB的文件用于测试

返回的文件列表信息

{

 errno: 0,

 guid_info: '',

 list: [

   {

     tkbind_id: 0,

     owner_type: 0,

     category: 6,

     real_category: 'rar',

     fs_id: 1011xxxxxxxx288,

     md5: '5eeabxxxxxxxxxxx82183',

     oper_id: 231xxxxxxxxx846,

     server_ctime: 168xxxxxxxx05,

     extent_tinyint7: 0,

     wpfile: 0,

     local_mtime: 16xxxxxxxxx4658,

     size: 4xxxxxxxxx390,

     from_type: 0,

     pl: 1,

     share: 0,

     server_atime: 0,

     path: '/test/psxxxxxxxx.rar',

     local_ctime: 166xxxxxx79,

     server_mtime: 168xxxxxxxx05,

     server_filename: 'psxxxxxxx.rar',

     owner_id: 0,

     unlist: 0,

     isdir: 0

   }

 ],

 request_id: 87xxxxxxxxxxxxx00,

 guid: 0

}

第十二步 获取文件信息

async function getFileMetas() {

 try {

   const response = await axios.get("http://pan.baidu.com/rest/2.0/xpan/multimedia", {

     params: {

       method: "filemetas",

       access_token: access_token,

       fsids: `[${fs_id}]`,

       thumb: 0,

       dlink: 1,

       extra: 0,

     },

     headers: {

       "User-Agent": "pan.baidu.com",

     },

   });

   console.log(response.data);

 } catch (error) {

   console.log(error);

 }

 // {

 //   errmsg: 'succ',

 //   errno: 0,

 //   list: [

 //     {

 //       category: 6,

 //       dlink: 'https://d.pcs.baidu.com/file/5eexxxxxxxx183?fid=231xxxx',

 //       filename: 'pxxxxxx.rar',

 //       fs_id: 101xxxxxxxxxxxx1288,

 //       isdir: 0,

 //       local_ctime: 1xxxxxxxxxx579,

 //       local_mtime: 16xxxxxxxxx658,

 //       md5: '5eeabb4exxxxxxx2183',

 //       oper_id: 23xxxxxxxxxxx6846,

 //       path: '/test/xxxxxx.rar',

 //       server_ctime: 16xxxxxxx705,

 //       server_mtime: 16xxxxxxxxx3705,

 //       size: 48790390

 //     }

 //   ],

 //   names: {},

 //   request_id: '87xxxxxxxxxx651'

 // }

}

第十三步 下载文件

不允许使用浏览器直接下载超过50MB的文件, 超过50MB的文件需用开发者原生的软件或者app进行下载

我的文件刚好没有50MB, 我去整个100M的试试

上传了一个93MB的文件, 看看能不能正常下载

function downloadFile() {

 let dlink =

   "https://d.pcs.baidu.com/file/5exxxxxxxxxx"

 let url = `${dlink}&access_token=${access_token}`;


 return new Promise((resolve, reject) => {

   axios

     .get(url, {

       headers: {

         "User-Agent": "pan.baidu.com",

         Host: "d.pcs.baidu.com",

       },


       responseType: "stream",

     })

     .then((response) => {

       const writeStream = fs.createWriteStream("file.zip");

       response.data.pipe(writeStream);

       writeStream.on("finish", () => {

         resolve(true);

       });

       writeStream.on("error", (error) => {

         reject(error);

       });

     })

     .catch((error) => {

       console.log(error);

       reject(false);

     });

 });

}

你们知道下载时间多少吗?

async function main() {

 let startTime = new Date().getTime();

 let downloadRes = await downloadFile();

 console.log(downloadRes);

 let endTime = new Date().getTime();

 console.log(`下载耗时:${(endTime - startTime) / 1000}s`);

}

main();


下载耗时:17.833s // 93.06MB

Y的不比阿里慢呀

备注

目前下载sdk仅支持小文件下载,如果涉及大文件,可参考该demo进行升级改造,涉及到分片下载、断点下载等技术

以上代码均由ChatGPT4生成, 我用的是国内的服务商提供的chatGPT4服务, 不需要科技就可以正常用, 还支持画图


公众号 牙叔教程

这个ChatGPT星球有多牛逼

相关文章
|
存储 人工智能 安全
我要这1TB 存储空间有何用?
1TB 的存储空间,除了存储一些歌曲、电影、图片之外,还可以用来做什么呢?今天,我们就以对象存储 OSS 为例,简单聊一聊。
1084 2
|
存储 缓存 前端开发
【Java项目】bitmap实现B站点赞超过500取消最早的点赞记录的实现思路
【Java项目】bitmap实现B站点赞超过500取消最早的点赞记录的实现思路
188 0
复制一个5G文件只需要两秒,全网最牛方法!
复制一个5G文件只需要两秒,全网最牛方法!
|
存储 缓存 文件存储
「系统」占用太多硬盘空间?试试用这些方法将它找回来
「系统」占用太多硬盘空间?试试用这些方法将它找回来
340 0
|
Arthas Web App开发 运维
线上 RTT 过长,我用这一招解决了!
线上 RTT 过长,我用这一招解决了!
|
存储 缓存 固态存储
天啦噜!知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍
存储器的层次结构、层次关系、存储器之间的实际价格和性能差距
天啦噜!知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍
|
IDE Java 开发工具
推荐一款代码神器,代码量至少省一半!
在我们 Java 项目里面,有很多 Java Bean 需要为每个属性生成 get/ set 方法,增删改属性都需要维护这些 get/ set 方法甚是麻烦。 今天给大家介绍一款能帮助我们简化这些代码的神器:Lombok!有了这个神器,你的 Java Bean 类的代码量至少可以省一半。
168 0
推荐一款代码神器,代码量至少省一半!
|
数据可视化 Android开发 iOS开发
0.7MB 能用来干嘛?
mPaaS 扫码组件现已优化:更轻更快更强
967 0
0.7MB 能用来干嘛?
发布后,每个页面第一次打开都很卡,50秒或更长,第二次打开就很快了
估计原因:编译速度慢,但在有VS环境的机器上发布没有这么卡 解决办法: 使用高版本的VS,“在发布期间预编译”; 使用IIS8的Application Initialization功能 1. 使用VS2017“在发布期间预编译”       发布时遇到一个报错: 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。
1088 0
下一篇
DataWorks