zdppy+onlyoffice实现重命名文件的功能

参考文档:https://api.onlyoffice.com/zh/editors/rename

步骤图:
在这里插入图片描述

实现步骤:
用户在 文档编辑器中为文档指定一个新名称。
文档编辑器 将文档的新名称通知给 文档管理器。
文档管理器 将文档的新名称发送到 文档存储服务,在这里软件集成商重命名文档。
文档存储服务 将文档的新名称通知给 文档编辑服务。
文档编辑服务 将文档的新名称发送给每个用户的 文档编辑器。
现在新名称对所有用户可见。

注意:默认是没有重命名的菜单的
在这里插入图片描述

如果想要启动重命名,必须添加如下配置:

permissions: {rename: true,}

参考文档:https://api.onlyoffice.com/zh/editors/config/events
在这里插入图片描述

添加如上配置以后,我们就有了重命名菜单:
在这里插入图片描述

点击重命名菜单,会弹出一个对话框,允许我们对文件名做修改:
在这里插入图片描述

点击确定,则会触发onRequestRename事件。
在这里插入图片描述

接下来参考文档:https://api.onlyoffice.com/zh/editors/command
在这里插入图片描述

我们将重命名事件改写如下,然后进行测试:

const key = "Khirz6zTPdfd7"
const onRequestRename = (event) => {let title = event.data;console.log(event)console.log(title)axios({method: "post",url: `http://192.168.234.138:18889/coauthoring/CommandService.ashx`,data: {"c": "meta","key": key,"meta": {"title": title}}}).then(resp => {console.log("onRequestRename", resp)})
};

发生了跨域的错误:
在这里插入图片描述

解决跨域的问题,只需要修改vite.config.js,配置代理即可:

import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue()],server: {proxy: {'/docserver': {target: 'http://192.168.234.138:18889', //目标urlchangeOrigin: true, //支持跨域rewrite: (path) => path.replace(/^\/docserver/, ""),//重写路径,替换/api},'/api': {target: 'http://192.168.234.138:18888', //目标urlchangeOrigin: true, //支持跨域rewrite: (path) => path.replace(/^\/api/, ""),//重写路径,替换/api}}}
})

改写请求方法如下:


const key = "Khirz6zTPdfd7"
const onRequestRename = (event) => {let title = event.data;console.log(event)console.log(title)axios({method: "post",url: `/docserver/coauthoring/CommandService.ashx`,data: {"c": "meta","key": key,"meta": {"title": title},}}).then(resp => {console.log("onRequestRename", resp)})
};

此时报错:
在这里插入图片描述

跨域的问题解决了,但是出现了新的错误。
参考官方文档:https://api.onlyoffice.com/zh/editors/command
错误码:
在这里插入图片描述

改写请求方法如下:

const key = "Khirz6zTPdfd7"
const onRequestRename = (event) => {let title = event.data;console.log(event)console.log(title)axios({method: "post",url: `/docserver/coauthoring/CommandService.ashx`,data: {"c": "meta","key": key,"meta": {"title": title},token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb2N1bWVudCI6eyJmaWxlVHlwZSI6ImRvY3giLCJrZXkiOiJLaGlyejZ6VFBkZmQ3IiwidGl0bGUiOiJFeGFtcGxlIERvY3VtZW50IFRpdGxlLmRvY3giLCJ1cmwiOiJodHRwOi8vMTkyLjE2OC4yMzQuMTM4OjE4ODg4L2Rpc3QvdGVzdC5kb2N4In0sImVkaXRvckNvbmZpZyI6eyJjYWxsYmFja1VybCI6Imh0dHA6Ly8xOTIuMTY4LjIzNC4xMzg6MTg4ODgvY2FsbGJhY2siLCJsYW5nIjoiemgtQ04iLCJ1c2VyIjp7ImlkIjoiMSIsIm5hbWUiOiJ6ZHAifSwiY3VzdG9taXphdGlvbiI6eyJmb3JjZXNhdmUiOnRydWV9LCJjb0VkaXRpbmciOnsibW9kZSI6ImZhc3QiLCJjaGFuZ2UiOnRydWV9fSwiZG9jdW1lbnRUeXBlIjoid29yZCIsImhlaWdodCI6IjUwMHB4Iiwid2lkdGgiOiIxMDAlIn0.vnSYKU22-IsBmuoSn5Po-Ukz1RrnM-G3ch3-JuJd1xg",}}).then(resp => {console.log("onRequestRename", resp)})
};

没有令牌的问题解决了,但是出现了没有文件秘钥的问题:
在这里插入图片描述

通过查询官方文档,key就是所谓的文档秘钥:
在这里插入图片描述

现在的问题是,怎么才能拿到docserver服务中文件真实的秘钥!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

synchronized关键字详解

文章目录 synchronized使用示例实现原理锁的升级synchronized与可见性synchronized与原子性synchronized与有序性 synchronized synchronized是Java提供的关键字译为同步,是Java中用于实现线程同步的一种机制。它可以确保在同一时间只有一个线程能够执行某段代码&a…

【Python系列】数字的bool值

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MVC之 IHttpModule管道模型《二》

》》》注意:在http请求的处理过程中,只能调用一个HttpHandler,但可以调用多个HttpModule。 HTTP Modules ASP.NET请求处理过程是基于管道模型的,这个管道模型是由多个HttpModule和HttpHandler组成,当请求到达HttpMod…

UART编程

Q:为什么使用串口前要先在电脑上安装CH340驱动? 中断的作用? 环形buffer的作用? static和valitate的作用 三种编程方式简介 也可以通过DMA方式减小CPU资源的消耗 直接把数据在SRAM内存和UART模块进行传输 ,流程: …

玩家自行定制内存将古老的386 PC内存升级到64MB容量

比尔盖茨曾说:“无论对谁来说,640K内存都足够了。” 如果你是一个还停留在 30 针 SIMM 时代的老式电脑爱好者,那么你的内存升级选择是相当有限的。不过,YouTube 上的一个频道已经展示了如何将古老的 386 系统内存升级到令人"…

Linux内核编译安装 - Deepin,Debian系

为什么要自己编译内核 优点 定制化:你可以根据自己的硬件和需求配置内核,去掉不必要的模块,优化性能。性能优化:移除不需要的驱动程序和特性,减小内核体积,提高系统性能。最新特性和修复:获取…

【Leetcode】最小数字游戏

你有一个下标从 0 开始、长度为 偶数 的整数数组 nums ,同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏,游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下: 每一轮,Alice 先从 nums 中移除一个 最小 元素&…

【Linux】System V消息队列 System V信号量

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…

Spark调度底层执行原理详解(第35天)

系列文章目录 一、Spark应用程序启动与资源申请 二、DAG(有向无环图)的构建与划分 三、Task的生成与调度 四、Task的执行与结果返回 五、监控与容错 六、优化策略 文章目录 系列文章目录前言一、Spark应用程序启动与资源申请1. SparkContext的创建2. 资…

Python | Leetcode Python题解之第233题数字1的个数

题目: 题解: class Solution:def countDigitOne(self, n: int) -> int:# mulk 表示 10^k# 在下面的代码中,可以发现 k 并没有被直接使用到(都是使用 10^k)# 但为了让代码看起来更加直观,这里保留了 kk,…

Excel第31享:基于left函数的截取式数据裂变

1、需求描述 如下图所示,在“Excel第30享”中统计2022年YTD各个人员的“上班工时(a2)”,需要基于工时明细表里的“日期”字段建立辅助列,生成“年份”字段,本文说明“年份”字段是怎么裂变而来的。 下图为…

图像处理:使用 OpenCV-Python 卡通化你的图像(2)

一、说明 在图像处理领域,将图像卡通化是一种新趋势。人们使用不同的应用程序将他们的图像转换为卡通图像。如今,玩弄图像是许多人的爱好。人们通常会点击图片并添加滤镜或使用不同的东西自定义图像并将其发布到社交媒体上。但我们是程序员,…

godis源码分析——Redis协议解析器

前言 redis这个目录下的所有代码就是为了一个事情,就是适配redis。 流程 redis下的基本流程 源码 在redis/client/client.go 主要是客户端处理 package clientconst (created iotarunningclosed )type B struct {data chan stringticker *time.Ticker }// …

Docker安装RabbitMQ(带web管理端)

1.拉取带web管理的镜像 可以拉取rabbitmq对应版本的web管理端,比如:rabbitmq:3.9.11-management,也可以直接拉取带web管理端的最新版本 rabbitmq:management. docker pull rabbitmq:3.9.11-management 注意:如果docker pull ra…

jenkins系列-06.harbor

https://github.com/goharbor/harbor/releases?page2 https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz harbor官网:https://goharbor.io/ 点击 Download now 链接,会自动跳转到上述github页面&am…

C++ | Leetcode C++题解之第233题数字1的个数

题目: 题解: class Solution { public:int countDigitOne(int n) {// mulk 表示 10^k// 在下面的代码中,可以发现 k 并没有被直接使用到(都是使用 10^k)// 但为了让代码看起来更加直观,这里保留了 klong l…

Redis系列命令更新--Redis哈希命令

一、设置密码验证: 使用文本编辑器,这里使用Notepad,打开Redis服务配置文件。 注意:不要找错了,通常为redis.windows-service.conf,而不是redis.windows.conf。后者是以非系统服务方式启动程序使用的配置…

《BASeg: Boundary aware semantic segmentation for autonomous driving》论文解读

期刊:Neural Networks | Journal | ScienceDirect.com by Elsevier 年份:2023 代码:https://github.com/Lature-Yang/BASeg 摘要 语义分割是自动驾驶领域街道理解任务的重要组成部分。现有的各种方法要么专注于通过聚合全局或多尺度上下文…

旷野之间20 - Google 研究的推测 RAG

为什么选择 RAG 新兴能力 直到最近,人们发现 LLM 具有新兴能力,即在与用户或任务交互过程中出现的意外功能。 这些功能的示例包括: 解决问题: LLM 可以利用其语言理解和推理能力,为未经过明确培训的任务提供富有洞…

python的字符串

字符串 简单操作 创建 利用 ‘ ’ 或 “ ” 将字符或数字包裹起来的都为字符串 a"你好" 格式化字符串 元组的字符格式化 字符串格式化函数 srt.format() f格式化 方法 split()//指定分割符经行分割 strip()//指定移除字符头尾的字符 join()//指定序列中的字符连接成新…