主要根据百度的文档上定义了三个类,目前仅仅记录下调试过程,后续再优化下。

构造函数,主要是把上个篇幅中的信息传递给构造函数,因为里面需要重复地使用。
根据传入的app信息换取access_token

默认会把access_token存到配置文件中去。

网页授权,用授权码换取token

reflush_token 刷新token,目前还没用到。这样在初始化的过程中,第一次没有配置文件的时候需要拷贝授权码,授权后换取token,把token存储到配置文件中去,后面直接取里面的内容就可以直接使用。
这里应该是从csdn上找的相关文章,然后稍微修改了下逻辑。
有了token就是根据baidu文档上api,实现就可以了。
例如:

找到用户信息

capacity信息。
文件传输,文件传输的话分三部分,预上传,分片上传,创建文件,三部分。这里目前只实现了小于4MB的上传,后面在扩展下支持大于4MB的文件上传。

模板方法,预上传,切片上传,以及创建文件。

主要这里用fileBlocks把计算md5序列以及block_list都封装了下。
下面是切片上传

最后是创建文件

备注:切片上传的时候,我使用的百度的例子,直接文件,open的方式,后面是否是直接4MB的bytes ? 后面再优化。
返回文件切片md5,这里稍微有点留意,可能是我使用的方式不对,直接在json 里面放list,最后会被接口判断参数不合法。所以按百度的例子来拼接字符串

把blockList的返回值给json里面block_list.参考上面的代码。
最终上传的结果


备注:
- 这里只是初步把数据跑通了,后续还需要异常处理
- 首次登录的时候,是否可以用爬虫技术自动获取授权码,有待测试
- 上传文件大于4M,还没有实现
- 文件内容上传哪里,跟4M这里可能还需要深入了解下怎么处理。