JavaWeb 中用到了第三方软件生成的统计数据报表,但是每个客户使用的报表都是不同的,我在打 war 包的时候需要把所有的报表都打进去。关键是用户可以在使用过程中导入新的报表,但是这些报表都没保存到 war 包里,只要服务一重启,这些表就丢了,需要客户重新导入,客户表示很不满意。求问各位 v 友大神,有没有什么解决办法,,
ps :服务器有 Linux 的也有 windows 的
1
domty 2017-04-05 16:54:09 +08:00
意思是要把用户打包的数据弄成类似静态资源一类的东西?
这你要不然把所有的数据都分析后打包到数据库里,要导出的时候静态生成。 要不就写个接口保存到服务器本地路径或者 7 牛这样的远程存储供应商那里呗? |
2
ray0625 OP @domty 谢谢,目前看放到本地服务器可行,或者我们有单独的存储区可以用~~然后想问一下把数据都分析后打包到数据库里,这种如何实现呢?什么样 l 类型的文件都行吗?比如我们现在用到的是第三方自己定义的一种文件:xxx.cpt
|
4
lcorange 2017-04-05 17:18:20 +08:00
你的文件上传路径是 webapp 下面,这个文件夹在重新发布的时候是全删后重新解压 war 的。所以都没了
1. 要么像 1#一样,开个云文件,或者保存到服务器本地目录 2. 让运维部署 war 时写个脚本,先把 cpt 文件复制出来,然后部署 war ,然后覆盖回去 3. 存数据库的话,可以转成 byte 数组,存进去,这样就无所谓什么格式了 |
5
sagaxu 2017-04-05 17:49:10 +08:00
不要把用户数据和代码放在一起
|
6
340244120 2017-04-05 18:33:19 +08:00 via Android
上传文件放到应用外面 保持独立
|
7
NUT 2017-04-05 19:05:55 +08:00
做一个文件服务器
|
8
wc951 2017-04-05 20:20:37 +08:00 via Android
数据库可以存个 blob 字段
|
9
Ouyangan 2017-04-05 21:35:28 +08:00
1.新增两个表 , 文件表(原文件名,重命名,大小,访问 url) ,用户文件表(文件 id,用户 id)
2.新建一文件目录用于放置用户文件, 量不大的话 tomcat 配一个虚拟目录 . 好处是这样迁移到云上只需要上传文件到云服务器 ,批量替换访问 url 即可. |
11
luban 2017-04-05 21:45:04 +08:00 via iPhone
最简单的方式,不要用 war 包部署,直接用文件夹方式
比较合理的方式,存客户报表的文件夹挪到 war 包外面 |
12
ray0625 OP @lcorange 谢谢,打算用类似第一种的方法了。上传时放到存储区和 webapps 的文件夹下,下次 tomcat 启动时,直接从存储区移动过来
|
15
jalena 2017-04-06 10:03:45 +08:00
不用 war 的形式部署不就可以了?或者你关闭 war 的自动解包功能!
|