当前位置: 百度开发者 > 百度网盘 > 阅读正文

百度网盘开发–文件下载

2021.9.12.   1468 次   1279字

使用开发者接口下载的百度网盘资源是不限速的, 不过有频率控制

下载步骤

百度网盘接口下载方式是 get 请求, 直接参数是

  • access_token –> 你的访问令牌
  • User-Agent –> 请求对象, 固定为 pan.baidu

其他说明 :

1. 通过【列表类接口】获取文件的fsid。
2. 通过【取文件信息filemetas接口】获取文件的下载地址,即接口返回的dlink字段
3. 使用dlink下载文件
4. dlink有效期为8小时
5. 必需要设置User-Agent字段
6. dlink存在302跳转

意思是你必须经过如下几个步骤才可以完成下载

  1. 先得下载通过文件列表接口, 获取到你的文件的 fsid
  2. 接着, 通过 fsid , 查询文件的信息, 得到下载地址dlink
  3. 然后你就可以通过dlink下载啦

大概是这个步骤, 接下来我们演示完整的下载流程

完整下载流程

1.先获取access_token, 使用简化授权快速获得, 输入你的client_id, 然后在响应的url中获取你的access_token

https://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id=YOUR_CLIENT_ID&redirect_uri=oob&scope=basic,netdisk&display=popup&state=xxx

2.获取文件的fsid, 使用下面这个地址, 其中dir是目录,key是文件名

https://pan.baidu.com/rest/2.0/xpan/file?dir=/test&access_token=YOUR_TOKEN&web=1&page=1&num=2&method=search&key=mmexport

3.查询文件信息, 获得下载链接dlink, 需要给一些fsids, 如果仅有一个fid, 把%5B和%5D去掉, 换成[]把fsid包裹起来, 多个fsid用,隔开

https://pan.baidu.com/rest/2.0/xpan/multimedia?access_token=YOUR_TOKEN&method=filemetas&fsids=%5B414244021542671,YOUR_FSID%5D&thumb=1&dlink=1&extra=1

4.得到dlink,要进行一些修改, 把 \u0026 替换为 & ,这时这个dlink才是有效的,配合curl即可下载

curl -L -X GET 'YOUR_DLINK&access_token=YOUR_TOKEN' \
-H 'User-Agent: pan.baidu.com' YOUR_TOKEN

你可以通过修改浏览器的 user-agent, 直接使用浏览器下载也是可以的

实现下载方式并不止这一种, 以上仅仅只是模拟, 通过这个过程, 我们了解到 :

  • access_token有效期1个月
  • fs_id是文件的唯一标识, 不会改变
  • dlink有效期为8小时

实际开发中, 配合数据库, 上传时, 记住文件的fsid, 这样就可以通过程序实现直接下载啦.

更多资料, 请查看百度网盘开发者手册

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群