【onlyoffice】关于文件转换之后无法从api访问转换后的文件的问题

问题

当我们调用onlyoffice转换我们想要的文件之后,访问api返回的地址为403

onlyoffice转换
访问转换后的地址


解决方法

通过nginx转发office的缓存文件实现访问转换后的文件。

找到服务器所在的onlyoffice的lib目录并将其通过nginx转发

原理:<onlyoffice的lib目录路径>/documentserver/App_Data/cache为onlyoffice的缓存文件存放位置,而onlyoffice转换后的文件将存放在<onlyoffice的lib目录路径>/documentserver/App_Data/cache/files/data里;
具体文件路径在请求中有明确标识,上图为例,则转换后的文件路径为<onlyoffice的lib目录路径>/documentserver/App_Data/cache/files/data/conv_12_pdf/output.pdf/o206V6-VeAmjorDZz21PgrJy56PU_0193895a-3feb-409a-9cd8-481b42aacda7.pdf

如果您通过docker安装的onlyoffice,则docker容器里面的onlyoffice的lib目录在/var/lib/onlyoffice,您需要把容器里的/var/lib/onlyoffice目录挂载到服务器本地。
或者配置onlyoffice容器里的nginx,把容器里的/var/lib/onlyoffice目录转发出来,但是同时需要把容器的端口暴露。

这里以9002端口转发为例。
其中,docker容器里面的onlyoffice的/var/lib/onlyoffice挂载到本地的/app/onlyoffice/DocumentServer/lib

server {
        listen 9002;
        charset utf-8;

        location / {
                root /app/onlyoffice/DocumentServer/lib/documentserver/App_Data/cache/files/data;
                #autoindex on;    // 开启/关闭目录列表功能
                #autoindex_exact_size off;    // 关闭/打开显示文件的确切大小
                #autoindex_localtime on;     // 使用本地时间格式显示文件的时间信息,而不是GMT时间
        }
}

可以开启以下配置来测试nginx是否配置成功

  • autoindex on:开启目录列表功能,当访问9002端口时,会显示服务器下该目录(/app/onlyoffice/DocumentServer/lib/documentserver/App_Data/cache/files/data)下的文件和子目录列表。
  • autoindex_exact_size off:关闭/打开显示文件的确切大小,只显示文件大小的单位(如KB、MB等),不显示具体的数值。
  • autoindex_localtime on:使用本地时间格式显示文件的时间信息,而不是GMT时间。

如果配置了autoindex on;,则访问9002端口是会显示目录下的文件和目录

重启nginx

nginx -s reload

总结

通过配置nginx,将主机上onlyoffice的lib目录转发,可以通过访问http://<你的 OnlyOffice 主机>:<配置的端口>/地址,相当于访问在OnlyOffice 主机访问nginx所配置的文件目录(即主机上onlyoffice的lib目录)。

以上只提供用nginx无权限校验访问onlyoffice转换的文件;您也可以通过java/python实现的后端或者配置nginx实现您想要的效果。

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值