ONLYOFFICE历史版本功能的开发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ONLYOFFICE历史版本功能的开发相关的知识,希望对你有一定的参考价值。

参考技术A https://api.onlyoffice.com/editors/history

上面的页面介绍如何进行历史版本功能的开发。

https://api.onlyoffice.com/editors/howitworks

上面介绍了onlyoffice document server所包含的功能,

The client side includes:

Document manager - the list of the documents displayed in the user browser where the user can select the necessary document and perform some actions with it (depending on the provided rights, the user can open the document to view it or edit, share the document with other users).

Document editor - the document viewing and editing interface with all the most known document editing features available, used as a medium between the user and the document editing service .

The server side includes:

Document storage service - the server service which stores all the documents available to the users with the appropriate access rights. It provides the document IDs and links to these documents to the document manager which the user sees in the browser.

Document editing service - the server service which allows to perform the document viewing and editing (in case the user has the appropriate rights to do that). The document editor interface is used to access all the document editing service features.

Document command service - the server service which allows to perfom additional commands with document editing service .

Document conversion service - the server service which allows to convert the document file into the appropriate Office Open XML format (docxfor text documents,xlsxfor spreadsheets andpptxfor presentations) for their editing or downloading.

Please note, that ONLYOFFICE Document Server includes the document editor , document editing service , document command service  and document conversion service . The document manager and document storage service are either included to Community Server or must be implemented by the software integrators who use ONLYOFFICE Document Server on their own server.

请注意,onlyoffice document server包括 document editor ,  document editing service ,  document command service( 文档编辑器、文档编辑服务、文档命令服务和文档转换服务)。文档管理器和文档存储服务要么包含在社区服务器上,要么必须由在自己的服务器上仅使用office文档服务器的软件集成商实现。

我用golang就是 开发了文档管理器和文档存储 。

类似可道云的那种云盘的资料管理。

但相比可道云,对于我们工程设计人员来说,更容易管理文档,比如编号和名称分开,文件作为附件放到成果下面,而不像可道云这样直接看到的就是附件,一个成果下可以放多个附件。还可以发布文章,可以设置成果间的关联,可以设置目录的权限,可以根据附件扩展名来设置权限,比如只运行看pdf文件,不运行看dwg,dgn等图纸文件。

回到正题,历史版本的开发必须从onlyoffice document server的返回值里找到数据结构。

  

    "key":"1520696086733383100",  

    "status":2,  

    "url":"http://192.168.99.100:9000/cache/files/1520696086733383100_1849/outpu  

t.docx/output.docx?md5=CSBXuCfKbp1zaA2C-IoB2g==&expires=1523288157&  

disposition=attachment&ooname=output.docx",  

    "changesurl":"http://192.168.99.100:9000/cache/files/  

    1520696086733383100_1849/changes.zip/changes.zip?  

md5=eQOOXry8Spob255EtEi7QA==&expires=1523288157&  

disposition=attachment&ooname=output.zip",  

"history":  

    "serverVersion":"5.0.7",  

    "changes":[  

          

            "created":"2018-03-10 15:34:57",  

            "user":  

              

                "id":"9",  

                "name":"qin.xc"  

              

        ,  

          

            "created":"2018-03-10 15:35:29",  

            "user":  

              

                "id":"8",  

                "name":"qin8.xc"  

              

          

    ]  

,  

"users":["8"],  

"actions":["type":0,"userid":"9"],  

"lastsave":"2018-03-10T15:35:37.823Z",  

"notmodified":false  

  

官网上的例子:

Sample of JSON object sent to the "callbackUrl" address by document editing service when the user changed the document and closed it for editing

[html]   view plain   copy

  

    "actions": ["type": 0, "userid": "78e1e841"],  

    "changesurl": "https://documentserver/url-to-changes.zip",  

    "history":   

        "changes": changes,  

        "serverVersion": serverVersion  

    ,  

    "key": "Khirz6zTPdfd7",  

    "status": 2,  

    "url": "https://documentserver/url-to-edited-document.docx",  

    "users": ["6d5a81d0"]  

  

所以用beego开发先设置数据结构,然后解析到结构体就行了。

[plain]   view plain   copy

type Callback struct   

    Key         string   `json:"key"`  

    Status      int      `json:"status"`  

    Url         string   `json:"url"`  

    Changesurl  string   `json:"changesurl"`  

    History     history1 `json:"history"`  

    Users       []string `json:"users"`  

    Actions     []action `json:"actions"`  

    Lastsave    string   `json:"lastsave"`  

    Notmodified bool     `json:"notmodified"`  

  

type action struct   

    Type   int    `json:"type"`  

    Userid string `json:"userid"`  

  

type history1 struct   

    ServerVersion string   `json:"serverVersion"`  

    Changes       []change `json:"changes"`  

  

type change struct   

    Created string `json:"created"` //time.Time  

    User    User1  `json:"user"`  

  

type User1 struct   

    Id   string `json:"id"` //必须大写才能在tpl中显示.json  

    Name string `json:"name"`  

  

onlyoffice文档协作的权限开发,利用casbin和golang语言

登录用户,对于已经进行了权限设置的文档,将根据权限数据库,比对用户名,当与用户有关时,就显示相对应的权限,当都与登录用户无关时,则显示拒绝访问;

对于未登录用户,已经设置了权限的文档,都将显示拒绝访问;

对于登录和未登录用户,未进行权限设置的文档,则显示全部允许。

如果是用户自己上传的,则全部允许。

下图登陆用户和未登陆用户箭头指反了。
技术分享图片
技术分享图片
技术分享图片

以上是关于ONLYOFFICE历史版本功能的开发的主要内容,如果未能解决你的问题,请参考以下文章

jQuery的历史版本

Android历史版本的版本列表

Android历史版本

园子的现代化建设-博客版本控制:发布博客设置历史版本功能

Android历史版本

Android历史版本