修改RocksDB文件目录配置,使其支持使用相对路径

This commit is contained in:
WIN-VSNMD38DUOC\Administrator
2024-04-28 15:13:16 +08:00
parent 70f2a39c24
commit 3e8bc50d1b
5 changed files with 71 additions and 25 deletions

View File

@@ -7,27 +7,18 @@ import org.springframework.util.StringUtils;
@Component @Component
public class RocksDBConfig { public class RocksDBConfig {
public static String RocksDB_Path_Windows = "D://RocksDB"; public static String RocksDB_Path = "./cache/rocksdb";
public static String RocksDB_Path_Linux = "/usr/local/rocksdb";
public static String RocksDB_Column_Family = "default"; public static String RocksDB_Column_Family = "default";
@Value("${somkit.db.rocks.path.windows}") @Value("${somkit.cache.rocks-db.path}")
public void setRocksDB_Path_Windows(String rocksDB_Path_Windows) { public void setRocksDB_Path(String rocksDB_Path) {
if(StringUtils.hasText(rocksDB_Path_Windows)){ if(StringUtils.hasText(rocksDB_Path)){
RocksDB_Path_Windows = rocksDB_Path_Windows; RocksDB_Path = rocksDB_Path;
} }
} }
@Value("${somkit.db.rocks.path.linux}") @Value("${somkit.cache.rocks-db.column-family}")
public void setRocksDB_Path_Linux(String rocksDB_Path_Linux) {
if(StringUtils.hasText(rocksDB_Path_Linux)){
RocksDB_Path_Linux = rocksDB_Path_Linux;
}
}
@Value("${somkit.db.rocks.column-family}")
public void setRocksDB_Column_Family(String rocksDB_Column_Family){ public void setRocksDB_Column_Family(String rocksDB_Column_Family){
if(StringUtils.hasText(rocksDB_Column_Family)){ if(StringUtils.hasText(rocksDB_Column_Family)){
RocksDB_Column_Family = rocksDB_Column_Family; RocksDB_Column_Family = rocksDB_Column_Family;

View File

@@ -0,0 +1,53 @@
package cn.somkit.fmt.utils;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* 路径工具类
*/
public class PathUtils {
/**
* 解析相对路径为绝对路径
* @param relativePath 相对路径
* @return 绝对路径
*/
public static String resolve(String relativePath) {
if(relativePath.startsWith("./")){
relativePath = relativePath.replace("./", "");
}
// 获取当前工作目录的Path对象
Path currentWorkingDirectory = Paths.get("").toAbsolutePath();
// 使用相对路径创建Path对象
Path relativePathObject = Paths.get(relativePath);
// 解析相对路径,补全为绝对路径
Path absolutePath = currentWorkingDirectory.resolve(relativePathObject);
return absolutePath.toString();
}
/**
* 创建文件夹
* @param directoryPath 文件夹路径
*/
public static void directory(String directoryPath){
// 使用Paths.get()方法创建Path对象
Path dirPath = Paths.get(directoryPath);
// 检查文件夹是否存在
if (Files.notExists(dirPath)) {
try {
// 如果不存在,则创建文件夹及其所有必需的父目录
Files.createDirectories(dirPath);
System.out.println("Directory created: " + dirPath);
} catch (IOException e) {
// 如果创建过程中出现异常,打印错误信息
System.err.println("Failed to create directory: " + dirPath);
e.printStackTrace();
}
} else {
System.out.println("Directory already exists: " + dirPath);
}
}
}

View File

@@ -22,12 +22,12 @@ public class RocksDBUtils {
static { static {
try { try {
String rocksDBPath = null; //RocksDB文件目录 String rocksDBPath = RocksDBConfig.RocksDB_Path; //RocksDB文件目录
if (OsInfoUtil.isWindows()) { //如果使用相对路径,转换为绝对路径
rocksDBPath = RocksDBConfig.RocksDB_Path_Windows; // 指定windows系统下RocksDB文件目录 if(rocksDBPath != null && rocksDBPath.startsWith("./")){
} else if(OsInfoUtil.isLinux()){ rocksDBPath = PathUtils.resolve(rocksDBPath);
rocksDBPath = RocksDBConfig.RocksDB_Path_Linux; // 指定linux系统下RocksDB文件目录
} }
PathUtils.directory(rocksDBPath); // 创建RocksDB文件目录
RocksDB.loadLibrary(); RocksDB.loadLibrary();
Options options = new Options(); Options options = new Options();
options.setCreateIfMissing(true); //如果数据库不存在则创建 options.setCreateIfMissing(true); //如果数据库不存在则创建

View File

@@ -21,11 +21,9 @@ somkit:
path: path:
windows: D://data/install/upload windows: D://data/install/upload
linux: /mnt/files linux: /mnt/files
db: cache:
rocks: rocks-db:
path: path: ./cache/rocksdb # RocksDB缓存路径 可以使用绝对路径,也可使用相对路径
windows: D://RocksDB//fmt
linux: /usr/local/rocksdb/fmt
column-family: default column-family: default
logging: logging:
socket: socket:

View File

@@ -17,3 +17,7 @@
上传文件格式新增支持js、css、html、vsdx、dmp、7z、ppt、pptx 上传文件格式新增支持js、css、html、vsdx、dmp、7z、ppt、pptx
AxUI的axAjax方法timeout默认值改为6000000 AxUI的axAjax方法timeout默认值改为6000000
``` ```
> v1.3.0
```
修改RocksDB文件目录配置使其支持使用相对路径
```