«

»

3月 21

百度网盘(PCS)上传脚本

抄送给技术组所有人员。

在OpenShift环境下测试成功,由于速度过慢而停用。预计,在网络情况较好的情况下,此脚本将成为利器。

Warning!

请注意隐藏的安全性问题:

PHP需要高权限。这是极大的安全隐患。

目前想法是,需要时改成755,用完立即644.

请考虑。

 

转载自:http://oott123.github.com/bpcs_uploader/

http://oott123.is-programmer.com/posts/37641.html

 

系统要求

Notice

Linux (or cygwin) with php & curl installed.

使用方法

 

由于VPS上安装的php可能存在于各种地方,因此运行很可能不正常。请以使用

 

得到你的php绝对路径,修改bpcs_uploader.php的头一句#!后的路径。
如果你的php是为了网站环境安装的,那么很有可能你会得到下面这条错误消息:

Notice

xxx() has been disabled for security reasons

那么说明你的环境由于安全原因禁止了部分函数的执行。请看FAQs的1。请使用那条长长的命令代替./bpcs_uploader.php。eg:

 

初始化

 

敲下命令之后会进入初始化流程,这里分段详述设置方法。

 

确认初始化。如果之前有初始化过,那么以前的配置将会被覆盖。

 

第一步,输入App key。这里需要输入一个有PCS权限的API KEY,如果没有的话直接敲回车就好了,这里会默认使用百度提供的一个demo API KEY。不过,由于百度没有公开app secret,所以只能获取一个有效期为一个月的access token。如果有一个有PSC权限的API KEY和secret,那么就能获得一个有效期为10年的refresh token,以便长期使用。

 

第二步,输入App secret。如果输入了app secret,将会转到device code模式验证;或者直接输入回车使用oob模式验证。先直接回车:

 

#super注释:汉字乱码。
第三步,这里需要输入app name。详情见FAQ 2。因为是使用的默认的key,所以直接回车即可。

 

第四步,获取access token。在浏览器中打开上述URL( https://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id=L6g70tBRRIXLsY0Z3HwKqlRE&redirect_uri=oob&scope=netdisk ),进行授权。
授权完毕后,将会跳到一个写着“百度 Oauth2.0”的页面。复制出其中的网页URL,找到access_token=和&之间的字符串,例如: 3.**05c2ea85d52c2***************a5.2592000.136***9032.3089166538-23**47
将其复制到shell中粘贴并回车。使用这种方式初始化的用户,需要每月重新初始化。

如果第三步输入app secret的时候没有留空,将会得到下面的消息:

 

来到这里,打开浏览器访问 https://openapi.baidu.com/device ,在“请输入设备上显示的用户授权码:”文本框中输入上面显示的授权码(这里是12abcxyz),并点击继续。 看到网页上显示“请返回设备继续操作!”后,返回ssh上按下回车后,即可继续。

 

你所看到的输出可能和这里给出的不一样,但是只要看到了存储空间的剩余量,和【Have fun !】提示,即说明成功初始化。

查询容量(配额)

 

结果:

 

上传文件

路径格式:foo/bar/file.ext(路径中一定要包括文件名)
上传后,能在百度网盘/我的应用数据/应用名/foo/bar下找到一个叫file.ext的文件。

下载文件

删除文件

离线下载

注:离线下载暂时无法在一般的api key授权的情况下使用,需要另外申请开通。

 

 

FAQs

各种错误提示
试试

 
为什么要输入app name?
因为百度PCS的权限被限制在了/apps/appname/下。如果发现输入app name后仍然无法上传文件,请通过网页版找到【我的应用数据】找到对应的文件夹名,写入/config/appname文件。上传文件的时候会自动帮您处理文件夹,无需手动写出完整路径。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">