海运的博客

Linux VPS使用百度网盘API上传备份文件

发布时间:August 25, 2013 // 分类:备份存储 // 8 Comments

最近百度网盘将空间升级到了永久1TB,鉴于百度的实力用做数据备份空间不错,不过百度网盘没有Linux下的客户端,上传管理文件需通过百度开放云平台访问PCS资源的系列接口。
1.首先加入百度开发者:http://developer.baidu.com/dev#/create
2.任意创建一个应用获取API Key并开通PCS API权限,开放API > API管理 > API列表 > API服务 > PCS API > 开启
3.通过刚刚新建应用的API Key获取device code和user_code

curl -k -L -d "client_id=<api_key>&response_type=device_code&scope=basic,netdisk"\
"https://openapi.baidu.com/oauth/2.0/device/code"

4.在浏览器打开https://openapi.baidu.com/device输入获取到的user_code并连接,然后通过device code获取refresh_token和access_token:

curl -k -L -d "grant_type=device_token&code=<device_code>&client_id=<api_key>&client_secret=<api_secret>" \
"https://openapi.baidu.com/oauth/2.0/token"

5.此时通过access_token就可对网盘文件进行操作了,获取到access_token的有效期为30天,过期后通过refresh_token重新获取access_token

curl -k -L -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<api_key>\
&client_secret=<api_secret>"\
"https://openapi.baidu.com/oauth/2.0/token"

查看网盘配额:

curl -k -L "https://pcs.baidu.com/rest/2.0/pcs/quota?method=\
info&access_token=<access_token>"

上传文件:

curl -k -L -F "file=@haiyun.me.tar.gz" "https://c.pcs.baidu.com/rest/2.0/pcs/file?method=upload&\
access_token=<access_token>&path=/apps/pcsupload/haiyun.me.tar.gz"

下载文件:

curl -k -O "https://d.pcs.baidu.com/rest/2.0/pcs/file?method=download&access_token=<access_token>&\
path=/apps/pcsupload/haiyun.me.tar.gz"

删除文件:

curl -k -L "https://pcs.baidu.com/rest/2.0/pcs/file?method=delete&access_token=<access_token>\
&path=/apps/pcsupload/haiyun.me.tar.gz"

复制文件:

curl -k -L "https://c.pcs.baidu.com/rest/2.0/pcs/file?method=copy&access_token=<access_token>\
&from=/apps/pcsupload/haiyun.me.tar.gz&to=/apps/pcsupload/www.haiyun.me.tar.gz"

列出目录内文件:

curl -k -L "https://pcs.baidu.com/rest/2.0/pcs/file?method=list&access_token=<access_token>\
&path=/apps/pcsupload/"

更多操作:http://developer.baidu.com/wiki/index.php?title=docs/pcs/rest/file_data_apis_list

标签:备份, 百度网盘

有 8 条 关于" Linux VPS使用百度网盘API上传备份文件 "的评论

  1. vfhky vfhky

    挺不错的功能,不过还没vps啦。

  2. 枫林博客 枫林博客

    Windows下测试成功,谢谢

  3. 王东杰 王东杰

    谢谢,又学习了

    1. 王东杰 王东杰

      我的提示user not exist?

  4. 清源 清源

    不知道贵站博客的高亮是什么插件,版式很好看。
    此文内容可以做成一个shell脚本吗,或者像dropbox的那样呢

    1. 海运 海运

      代码高亮插件:CodeBox
      可根据自己需要做成脚本

  5. 麦克旅游 麦克旅游

    呵呵,可以用curl做是方便了不少啊,一直还想着弄成php的,不过要是用curl倒是直接了不少啊!

  6. slt slt

    非常感谢楼主
    发句牢骚,baidu开发者网站该来该去的,很多东西都不知道去那弄。

    另外,
    目前,创建应用找不到开放API,应该改成创建工程。

评论已关闭

分类
最新文章
最近回复
  • 海运: 正常情况下编译整个内核执行make menuconfig后就不会出现此提示,当单独编译单个模块...
  • oijq: 就是用的armbian的配置文件哈,按你的教程做的,在执行make LOCALVERSION=...
  • 海运: 使用armbian的配置文件,其它添加或修改自己懂的部分,不懂的就不要碰了。
  • oijq: 编译时这些选项全部选Y吗?Actions Semi Platforms (ARCH_ACTIO...
  • 海运: n1编译bbr内核模块参考这个:https://www.haiyun.me/archives/...
  • jiqz: make M=net/ipv4/ CONFIG_TCP_CONG_BBR=m modules编...
  • ruralhunter: 哦,文档里应该是对的,是.config
  • ruralhunter: cp /mnt/boot/config-4.18.7-aml-s9xxx .config这里应...
  • 海运: 你是编译不成功呢?还是编译后不能运行呢?还是运行后不能访问web界面呢?
  • 白墨: 可能不清楚就是编译安装后启动后访问不了web界面