个人的需求是想做一些在线预览编辑之类的事情,这里我使用了第三方(永中软件)的云编辑API接口,其支持doc/docx,ppt/pptx,xls/xlsx文件,需要先进行注册。
具体步骤如下:
一、先需要登录并注册
1、首先需要登录永中官网http://open.yozocloud.cn,点击”申请加入”
2、在永中开放平台首页点击“开发者申请”,进入开发者信息填写页面,信息填写完成后即可“提交申请”
二、创建应用
首先点击右上角“管理中心”,选择“申请添加新应用”
配置如下
成功后会得到APPID与APPKEY的信息,这几个值需记住后面会用到
三、开始使用
API接口文档
https://dev.yozocloud.cn/document/compile
1、上传文件
(1)、需要先获取sign值
需要两个python文件来生成,
如下所示:
signclient.py
# coding=utf-8
import hashlib
import hmac
sign = 'sign'
def generateSign(secret, params):
s = uniqSortParams(params)
return hmacSHA256(secret, s)
def uniqSortParams(params):
params.pop(sign, None)
result = ''
keys = list(params.keys())
keys.sort()
for key in keys:
values = list(params[key])
if values is not None and len(values) > 0:
values.sort()
for v in values:
result += key + '=' + v
else:
result += key + '='
return result
def hmacSHA256(key, msg):
key = bytes(key, encoding='utf-8')
msg = bytes(msg, encoding='utf-8')
digest = hmac.new(key, msg=msg, digestmod=hashlib.sha256).digest()
code = ''
for b in digest:
code += hex(b & 255 | 256)[3:5]
return code.upper()
if __name__ == '__main__':
params = {"appId": ["123"], "fileVersionIds": ["234", "123"]}
secret = 'qwe1qa'
print(generateSign(secret, params))
getsign.py
# coding=utf-8
from signclient import generateSign
#上传文件
secret = '35aae3dd3e222335a7c221cdea14'
params = {
"appId": ["yozodnYQseWZ1675"],
}
print(generateSign(secret, params))
注意这里secret对应上面的APPKEY,appId对应APPID,如下图。
运行python getsign.py获得sign值,并记录之。
(2)、上传
API:http://dmc.yozocloud.cn/api/file/upload
调用方式:POST
在postman种输入API地址,然后设置相关参数,输入上面操作记录的appId与sign值,然后file值选择File类型,并上传名为test.docx的文件
如上图所示,创建成功后返回操作成功,并返回fileVersionId与fileId。
2、在线预览/编辑
在线查看的API格式为
http://eic.yozocloud.cn/api/edit/file?appId=xxxxxx&fileVersionId=xxxxxx_0&sign=
xxxxxxxxxxxxxxxxxxxxxxxxxxxx&userRight=0
验证时同样需要获取sign值,这时候getsign.py中的内容变为:
得到sign后,我的一个查看的例子如下:
http://eic.yozocloud.cn/api/edit/file?appId=yozodnYQseWZ1675&fileVersionId=605486930792026112_0&sign=
C85730FE003C361D5311308A12D7353AD8E1663A43194D910E77AD3655FE466E&userRight=0
打开url,如下图所示,便可进行在线查看与编辑啦
3、新建模板
服务器提供6种文档模版,用户可以通过参数选择需要新建模版的文件,新建成功后会返回对应的fileID和fileVersionId,用户可以使用fileVersionId实现在线操作。
API地址
http://dmc.yozocloud.cn/api/file/template
调用方法
POST
实现:
先获取sign,获取sign的脚本getsign.py内容为:
参考如下API例子,填入filename,appId和sign,templateType=2表示新建
http://dmc.yozocloud.cn/api/file/template?templateType=2&filename=yozo.docx&appId=
yozodnYQseWZ1675
&sign=
146661E6E737595846277D05380C8AB361293B72A58A36C472D9ACEA6E6656FC
新建成功后返回结果如下
{
"data": {
"fileVersionId": "604976502034927617_0",
"fileId": "604976502034927617"
},
"message": "操作成功",
"errorcode": 0
}
然后可以通过在线预览api查看确认
http://eic.yozocloud.cn/api/edit/file?fileVersionId=xxx&appId=xxxx&sign=xxxx&userRight=1
4、下载文件
根据fileVersionId到服务器下载所需的文件到本地
API地址
http://dmc.yozocloud.cn/api/file/download
调用方法
GET
请求例子
http://dmc.yozocloud.cn/api/file/download?fileVersionId=xxx&appId=xxxx&sign=xxxx
获取sign的getsign.py脚本内容为:
下载成功
5、删除文件版本
删除文件的版本,版本一旦删除后将无法对该版本文件做相关操作
API地址
http://dmc.yozocloud.cn/api/file/delete/version
调用方法
GET
请求参数如下
请求示例如下
http://dmc.yozocloud.cn/api/file/delete/version?fileVersionId=xxx&appId=xxxx&sign=xxxx
获取sign的脚本getsign.py内容如下
使用postman
如上图一切正常,则返回操作成功
再次获取该文件时,提示获取失败。
总结:发现永中软件提供的SDK与API还是比较全的,使用比较方便。