利用第三方API实现文件在线预览/编辑/上传/下载等功能

个人的需求是想做一些在线预览编辑之类的事情,这里我使用了第三方(永中软件)的云编辑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还是比较全的,使用比较方便。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值