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
docker run -p 9002:8012 --name kkfileview -d --restart=always keking/kkfileview
3.瀏覽器訪問容器9002端口(http://xxx.xxx.xxx.xxx:9002)即可看到項目演示用首頁
4.nginx 代理
例如nginx的訪問地址為 https://xxxxx.com 想要使用 https://xxxxx.com/preview/來做預覽,kkFileView部署在外網ip-ip-ip-ip服務器上,需要在nginx中添加反向代理如下
location /preview {
proxy_pass ip-ip-ip-ip:8012;
}
nginx reload
修改kkFileView的配置文件如下兩項
server.context-path = /preview
base.url = https://xxxxx.com/preview
使用如下地址來訪問預覽頁面
var url = 'https://ip/test.txt'; //要預覽文件的訪問地址
window.open('https://xxxxx.com/preview/onlinePreview?url='+encodeURIComponent(url));
docker啟動如下:
find / -name application.properties
cd /opt/kkFileView-4.1.0-SNAPSHOT/config/
cp application.properties application.properties.bak(備份一下)
vi
修改server.servlet.context-path= ${KK_CONTEXT_PATH:/} 為 server.servlet.context-path= /preview
修改#base.url = ${KK_BASE_URL:default} 為 base.url = https://xxxxx.com/preview
重啟容器完成
項目接入使用:
當您的項目內需要預覽文件時,只需要調用瀏覽器打開本項目的預覽接口,並傳入須要預覽文件的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參數中的優化於配置文件中的),示例如下,
var originUrl = 'ftp://127.0.0.1/file/test.txt'; //要預覽文件的訪問地址var previewUrl = originUrl + '?ftp.username=xx&ftp.password=xx&ftp.control.encoding=xx';window.open('http://127.0.0.1:9002/onlinePreview?url='+encodeURIComponent(previewUrl));