minio + kkFileView 实现在线预览

2023-01-08,,

minio上传的pdf之类文件不支持预览,地址在浏览器访问时会直接下载,现在搭配kkFileView文件预览

1.minio查看之前的安装方式

2.kkFileView安装 docker方式

1.拉取 docker pull keking/kkfileview

2.启动 docker run -it -p 9002:8012 --network=host --restart=always keking/kkfileview

3.浏览器访问容器9002端口(http://xxx.xxx.xxx.xxx:9002)即可看到项目演示用首页

项目接入使用:

当您的项目内需要预览文件时,只需要调用浏览器打开本项目的预览接口,并传入须要预览文件的url,示例如下:

普通文件下载url预览

var url = 'http://127.0.0.1:9002/file/test.txt'; //要预览文件的访问地址window.open('http://127.0.0.1:9002/onlinePreview?url='+encodeURIComponent(previewUrl));

http/https下载流url预览

很多系统内不是直接暴露文件下载地址,而是请求通过id、code等参数到通过统一的接口,后端通过id或code等参数定位文件,再通过OutputStream输出下载,此时下载url是不带文件后缀名的,预览时需要拿到文件名,传一个参数fullfilename=xxx.xxx来指定文件名,示例如下

var originUrl = 'http://127.0.0.1:9002/filedownload?fileId=1'; //要预览文件的访问地址var previewUrl = originUrl +'&fullfilename=test.txt'window.open('http://127.0.0.1:9002/onlinePreview?url='+encodeURIComponent(previewUrl));

FTP下载url预览

1). FTP匿名访问

如果要预览的FTP url是可以匿名访问的(不需要用户名密码),则可以直接通过下载url预览,示例如下

var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址window.open('http://127.0.0.1:9002/onlinePreview?url='+encodeURIComponent(url));

2). 非匿名访问,确定只有访问一台FTP服务器

如果预览服务只访问一台FTP服务器,只需要在配置文件中 配置FTP链接信息 ,则可以直接通过下载url预览,示例如下

var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址window.open('http://127.0.0.1:9002/onlinePreview?url='+encodeURIComponent(url));

3). 非匿名访问,不只访问一台FTP服务器

如果预览服务要访问多台FTP服务器,且用户名密码不一致,可以通过在url中加入用户名密码等参数预览(url参数中的优化于配置文件中的),示例如下,

ftp.username=xx&ftp.password=xx&ftp.control.encoding=xx';window.open('http://127.0.0.1:9002/onlinePreview?url='+encodeURIComponent(previewUrl));