文件服务部署
依赖
sudo apt-get install unoconv libreoffice-dev imagemagick
目前发现的问题: 在某种情况下调用libreoffice将office文件转换为pdf文件时会导致出错。此时会有两个进程(具体进程名字未记录,待补)一直不退出,导致下次调用时一直失败。
安装
npm 配置
可以使用配置文件.npmrc
,设置几个常用的镜像,以加快部署速度
registry=http://registry.npm.ifeidao.com:7001
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs
puppeteer_download_host=http://npm.ifeidao.com/mirrors
sharp_dist_base_url=http://npm.ifeidao.com/mirrors/sharp-libvips/v8.8.1/
package-lock=false
将该文件(.npmrc)放在执行命令的目录下即可(即log4js.json,feidao.json配置文件所在的目录).
如果使用cnpm
命令部署请添加参数,使用npm
或yarn
则无须添加任何参数
cnpm i --userconfig=./.npmrc
# or
yarn
# or
npm i
最新版本
cnpm i --userconfig=./.npmrc @feidao/file
# or
npm i @feidao/file
固定版本
cnpm i --userconfig=./.npmrc @feidao/file@4.6.xxx
# or
npm i @feidao/file@4.6.xxx
配置
feidao.json
{
"appid": "file-server",
"java": "http://192.168.40.196/router4js",
"timeout": 10000,
"secure": false,
"port": 8888,
"acao": "*", // 可不配置
"acma": 150000, // 可不配置
"maxFileSize": 52428800
}
说明
appid
目前固定,不允许修改java
: java服务http监听地址timeout
: 访问java服务超时时间设置secure
: 是否检查用户session,如果配置该项且为true,cookie中无sessionid的请求将被拒绝port
端口号acao
Access-Control-Allow-Origin 允许跨域配置。支持通配符*
,也可以是某个固定的域名,正式部署的项目一般不需要配置acma
Access-Control-Max-Age 预检请求的有效期,单位为秒,acao配置后该项才生效maxFileSize
支持的最大文件大小,计算方法为x*1024*1024
,比如要设置限制最大上传200兆的文件,那么这个值就应该配置为200*1024*1024=209715200
,比如要设置限制最大上传500兆的文件,那么这个值就应该配置为500*1024*1024=524288000
启动服务
独立启动
./node_modules/.bin/feidao-file
使用pm2启动
pm2 start -i 4 ./node_modules/.bin/feidao-file