linux 百度云 备份软件下载,百度云存储api实现文件分享及linux下的备份上传

这次讲解下,百度网盘的api使用方法,一个让我们可以把linux上的文件传到一个强大又免费的空间上。。。

为啥会研究这个?

偶然,一定是偶然。要是想从服务器里面把东西传出来,反正就是把东西搞出来。以前我的方案都是dropbox,但是这东西,速度不咋地,而且很一般的速度。。。具体的应用我就不说了,每个人都有自己的想法,在我看来,他很适合做一个临时的免费的存储空间,速度也很不错的。

这个东西值得用吗?

必须呀。

这是我在linux下的测试报告,上传的速度已经到了5MB左右。。。。

0818b9ca8b590ca3270a3433284dd417.png

上传文件时的网速的测试!!!

0818b9ca8b590ca3270a3433284dd417.png

lnmp.py就是我上传的文件,很爽把。。。。 嘿嘿

这个lnmp.py 就是我上传的。。。

0818b9ca8b590ca3270a3433284dd417.png

首先看看他的使用指南:

0818b9ca8b590ca3270a3433284dd417.png

基于百度PCS的基本开发流程包括(见下图):

1. 注册百度账号。

2. 登录百度开发者中心,注册成为百度开发者。

【前两个就不说了,自己搞,别问我】

3. 创建应用。

0818b9ca8b590ca3270a3433284dd417.png

4. 开通PCS API权限。

可以看到咱们创建的应用。

0818b9ca8b590ca3270a3433284dd417.png

点进去,然后把应用的pcs api 启动下

0818b9ca8b590ca3270a3433284dd417.png

5. 获取Access_Token。

可以在这调试下

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

百度给大家提供的api已经是很棒了,尽情的用吧。。。。

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

里面已经有大量的说明啦 !!! 典型的rest http的接口。。。

所有的行为操作都要access_token的植入的,不然怎么确定你是不是安全的。。

0818b9ca8b590ca3270a3433284dd417.png

对于这类的接口,都是大同小异的。。。

都是需要一个临时访问的key。。。。 百度这边叫做access_token !!!

curl -k -L -d "client_id=(key)&response_type=device_code&scope=basic,netdisk" "https://openapi.baidu.com/oauth/2.0/device/code"

curl -k -L -d "grant_type=device_token&code=24539f5e161d056f8f237141a7fd1556&client_id=(key)&client_secret=jrDoGMYof6SPN4WxwYN8PwGg2y9Ecb00" "https://openapi.baidu.com/oauth/2.0/token"

把自己的key替换下就可以了。。。。。

查看容量大小

curl -k -L "https://pcs.baidu.com/rest/2.0/pcs/quota?method=info&access_token=(key)"

上传文件

curl -k -L -F "file=@xia.py" "https://c.pcs.baidu.com/rest/2.0/pcs/file?method=upload&access_token=(key)&path=/apps/netdiskshare/xia.py"

删除文件:

curl -k -L "https://pcs.baidu.com/rest/2.0/pcs/file?method=delete&access_token=\

&path=/apps/netdiskshare/xia.py"

复制文件:

curl -k -L "https://c.pcs.baidu.com/rest/2.0/pcs/file?method=copy&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=(key)&path=/apps/netdiskshare/"

下载

curl -k -O "https://d.pcs.baidu.com/rest/2.0/pcs/file?method=download&access_token=(key)&path=/apps/netdiskshare/2.jpg"

百度还提供了好多的语言接口,限于能力,我只看懂了python的。。。

from baidupcs import *

import webbrowser

import hashlib

# 根据自己创建的应用,设置相应的app_key与pcs_dir

app_key = 'app_key'

pcs_dir = 'pcs_dir'

pcs = PCS(app_key)

# webbrowser.open(pcs.access_token_url) # limit grant授权

pcs.authorize('here is access toekn')

# 获取云盘使用情况

info = pcs.quota.info()

print info

print 'quota info: %sM/%sM' % (info.used / 1024 / 1024, info.quota / 1024 / 1024)

# 创建目录

dir_name = 'test'

ret = pcs.file.mkdir(path = '/apps/%s/%s' % (pcs_dir, dir_name))

print 'file.mkdir:', ret

base_dir = '/apps/%s/%s/' % (pcs_dir, dir_name)

# 上传文件

path = 'd:\\test.jpg'

file_data = open(path, 'rb').read()

ret = pcs.file.upload(file = file_data, path = '/apps/%s/%s/test.jpg' % (pcs_dir, dir_name))

print 'file.upload:', ret

# 移动文件(改名)

frm = base_dir + 'test.jpg'

to = base_dir + 'test_to.jpg'

ret = pcs.file.move(_from = frm, to = to)

print ret

官方的一个百度云盘的shell tool工具,貌似是不错,但是不知道为啥用不了,有兴趣的朋友可以试试哈。

http://developer.baidu.com/wiki/index.php?title=docs/cplat/stor/sdk#Shell-Tool

大家可以看看,这边是pdf文档 !!!

http://bcs.duapp.com/cplat-01/bcs%2Fshell-tool%2F%E7%99%BE%E5%BA%A6%E4%BA%91%E5%AD%98%E5%82%A8ShellTool%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C_V1.1.pdf

上传的文件要是过大的话,大家可以用多种方法把大文件拆解下来。。。

head -c1610612736 xiaorui | curl -k -L -H "Host: c.pcs.baidu.com" -F "file=@-" "https://58.217.200.16/rest/2.0/pcs/file?method=upload&access_token=&type=tmpfile"

上传后面的

tail -c+1610612736 xiaorui | curl -k -L -H "Host: c.pcs.baidu.com" -F "file=@-" "https://220.181.164.16/rest/2.0/pcs/file?method=upload&access_token=&type=tmpfile"

也可以用dd的方法, dd if=/dev/zero skip=??? bs=1024000 count=1 of=file1

下面的方式实现了分拆文件的重组。。。。无比的好用 !!!

0818b9ca8b590ca3270a3433284dd417.png

一个小应用:

直连的下载链接

大家有看懂吗? 一个上传的文件直接可以转成下载的url, 有了公有地址的url,可以直接传给小伙伴们,让他们直接下载就行了。

0818b9ca8b590ca3270a3433284dd417.png

又是一个全力测试~

文件大小在 1.9G 左右.....

0818b9ca8b590ca3270a3433284dd417.png

页面上的结果~

0818b9ca8b590ca3270a3433284dd417.png

获取直连的另一种方法

这个下载地址可以让linux主机批量下载吗? 可以的。。。。把这个复制的连接存放到迅雷里面,可以获取下载的地址,你可以把地址分给别的主机下载。。

0818b9ca8b590ca3270a3433284dd417.png

已经下载好了,大家look look下吧~

0818b9ca8b590ca3270a3433284dd417.png

好嘞~

总结:

希望别让百度的人看到了哈,因为做it的人,有的是网络资源,可以随时的搞起。。。 不管怎么说,这东西真是个利器。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值