【libkpnd】金山快盘API【c语言】封装(SDK)

金山快盘开放了API接口供大家使用,但该接口是基于HTTP协议的,这也就是说任何可以实现HTTP访问的语言都可以使用该接口,但同样的麻烦的事就是我们需要手动封装HTTP并发送HTTP请求(可以使用相应库简化这个过程),但这样未免显得有些麻烦。于是乎就想自己封装一下c语言版的API。

看到官网上有人实现了不少相应语言的SDK包括PHP、Python等等,但貌似好像还没有c语言版的,不过这已经不重要了,一来官网征集各语言版本SDK的时间早已经过去了(2012年的样子),二来是出于自己的需要,因为自己之前有将数据存储到网上的需要,于是便找到了金山快盘的API,在做了一些简单的研究和测试后决定写一个c语言版的API。

金山快盘API返回的数据是json格式的,我对一些返回做了简单地处理,这样对json数据就不需要使用者自己再去解析了,当然我并不是将所有返回的json都进行解析了,像上传、下载等返回的我个人认为并不是很“重要的数据”就直接抛弃了,如果对此有需求的话可以自行利用libkpnd中的函数实现上传等功能,这样灵活性就有了,但返回的数据就需要自己去解析了。

当然你一定会奇怪要怎么利用libkpnd中的函数实现上传等功能呢?如果要自己实现的话我干吗还要使用libkpnd,干脆就自己实现好了,其实不然,这是因为金山快盘API的验证方式如果要自己手动去做处理的话还是有些烦琐的,当然也并不是太烦琐,但如果能够将所有的注意力集中在你的功能上而不是这些“基础的东西的话”会让人更愉快些,所以libkpnd有一个OAuth参数列表,该列表中存储着OAuth的各个参数,同时也提供了参数添加、参数删除、参数更新对参数进行OAuth算法验证以及参数排序等函数,这样会方便你的编程。当然如果你并没有太多的需求,完全可以使用我封装的上传等函数。

libkpnd目前所实现的功能包括
获取用户信息
获取文件信息
获取文件分享链接
获取文件历史版本
创建文件
删除文件
移动文件
复制文件
复制引用
上传文件
下载文件
获取文件缩略图
文件转换
但这里还有点问题,那就是获取文件缩略图和文件转换我在测试的时候失败了,返回的HTTP代码是519,按着官网的介绍,我想应该是快盘服务器出现了问题。好吧,这个有待大家发现吧。

花了一个多月的时间,浑浑噩噩的总算是完成了,要说自己果然是个大懒人啊,这一个多月有时几天码不了一行代码,有时却一天能码上百行代码,结果导致花了这么长时间,代码写到快一半的时候却发现好多重复的代码,删了吧不忍心,花了老多天才写这么几行代码,删了不舍得啊。。。。,竟然坑已经挖了,索性就往里跳吧。

说了这么多,现在将libkpnd的项目地址放上来
github: https://github.com/briskgreen/libkpnd
开源中国: https://git.oschina.net/brisk/libkpnd
bitbucket: https://bitbucket.org/briskgreen/libkpnd

下面是几个示例程序,简要说明libkpnd的使用方法

使用gcc编译时需要连接库libkpnd,参数-lkpnd

–阅读次数(557)

发表评论

电子邮件地址不会被公开。

*