前言:
这是今天偶然登上服务器发现的,本来是上去拿个日志文件,结果被吓了一激灵,这再不想办法,马上要“爆炸”。
我告诉自己,不能慌,想想办法
分析
经过仔细思考,我们的系统是审核类系统,上传的文件增加的速度挺快的,每天都有新的文件上传的C盘,看了下项目部署目录竟然也是在C盘,哪位“大哥”部署的,也真是个人才
面对这种情况,苦笑之后,你还是要想办法怎么把“屁股”擦干净,跟客户沟通了,扩容是不会给你扩容的,那么,唯一的办法就是利用其他盘的空间来分担。
最后决定,把上传文件的目录转移到E盘去,毕竟E盘空间比较大,之前的路径直接是获取的相对路径,只能和程序放在一个盘,现在考虑做的灵活一点,写个配置文件,自己配置,爱放哪放哪,又想到自己最近在网上看到yml文件,就想去尝试用一下,毕竟老是用一些自己熟知的东西太无趣,人生就是要折腾。
环境说明
eclipse
jdk1.6
tomcat6.0
步骤
1.下载jar包
snakeyaml-1.15.jar
注:jdk1.8及以上下载snakeyaml-1.25.jar
2.将jar包加入工程
3.在src目录下新建GCP_SET.yml文件
GCP_SET.yml
uploadFile:
filePath: E:\\GCP\\uploadfile\\
4.新建读取GCP_SET.yml的工具类:PathUtil.java
package com.haitaiinc.common.pathUtil;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.net.URL;
import java.util.Map;
import org.yaml.snakeyaml.Yaml;
public class PathUtil{
/**
* 获取文件上传下载的路径
* @param str
* @return
*/
public static String getUploadPath() {
String uploadPath = "";
Yaml yaml = new Yaml();
URL url = PathUtil.class.getClassLoader().getResource("GCP_SET.yml");
//获取GCPSET.yml文件中的配置数据,然后转换为obj,
try {
if (url != null) {
Object obj = yaml.load(new FileInputStream(url.getFile()));
//也可以将值转换为Map
Map map =(Map)yaml.load(new FileInputStream(url.getFile()));
if(map!=null) {
uploadPath = ((Map<String, String>) map.get("uploadFile")).get("filePath");
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return uploadPath;
}
}
注释都有说明,不做过多赘述,照猫画虎没问题
在程序中需要获取的地方,直接全局替换,大功告成
测试
最后在服务器的E盘新建好yml配置的目录,直接把文件拷过去,完成上传文件的盘符切换,重启服务,测试,莫得问题。
写在最后
就算路不坦荡,也要学做自己的太阳~**