mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-12 06:57:13 +08:00
refactor: 文件管理数据库字段调整 (#153)
This commit is contained in:
@@ -89,7 +89,7 @@ public class FileRecorderImpl implements FileRecorder {
|
|||||||
file.setExtension(fileInfo.getExt());
|
file.setExtension(fileInfo.getExt());
|
||||||
file.setType(FileTypeEnum.getByExtension(file.getExtension()));
|
file.setType(FileTypeEnum.getByExtension(file.getExtension()));
|
||||||
file.setContentType(fileInfo.getContentType());
|
file.setContentType(fileInfo.getContentType());
|
||||||
file.setMd5(fileInfo.getHashInfo().getSha256());
|
file.setSha256(fileInfo.getHashInfo().getSha256());
|
||||||
file.setMetadata(JSONUtil.toJsonStr(fileInfo.getMetadata()));
|
file.setMetadata(JSONUtil.toJsonStr(fileInfo.getMetadata()));
|
||||||
file.setThumbnailUrl(fileInfo.getThUrl());
|
file.setThumbnailUrl(fileInfo.getThUrl());
|
||||||
file.setThumbnailSize(fileInfo.getThSize());
|
file.setThumbnailSize(fileInfo.getThSize());
|
||||||
|
@@ -86,9 +86,9 @@ public class FileDO extends BaseDO {
|
|||||||
private FileTypeEnum type;
|
private FileTypeEnum type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MD5 值
|
* SHA256值
|
||||||
*/
|
*/
|
||||||
private String md5;
|
private String sha256;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 元数据
|
* 元数据
|
||||||
|
@@ -87,10 +87,10 @@ public class FileResp extends BaseDetailResp {
|
|||||||
private FileTypeEnum type;
|
private FileTypeEnum type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MD5 值
|
* SHA256 值
|
||||||
*/
|
*/
|
||||||
@Schema(description = "MD5值", example = "193572f83684128a0d0f993e97100f8a")
|
@Schema(description = "SHA256值", example = "722f185c48bed892d6fa12e2b8bf1e5f8200d4a70f522fb62112b6caf13cb74e")
|
||||||
private String md5;
|
private String sha256;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 元数据
|
* 元数据
|
||||||
|
@@ -96,7 +96,17 @@ public interface FileService extends BaseService<FileResp, FileResp, FileQuery,
|
|||||||
.getDayOfMonth() + StringConstants.SLASH;
|
.getDayOfMonth() + StringConstants.SLASH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查文件是否存在
|
||||||
|
* @param fileHash
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
FileResp check(String fileHash);
|
FileResp check(String fileHash);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建目录
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
IdResp<Long> createDir(FileReq req);
|
IdResp<Long> createDir(FileReq req);
|
||||||
}
|
}
|
@@ -91,10 +91,8 @@ public class FileServiceImpl extends BaseServiceImpl<FileMapper, FileDO, FileRes
|
|||||||
}
|
}
|
||||||
UploadPretreatment uploadPretreatment = fileStorageService.of(file)
|
UploadPretreatment uploadPretreatment = fileStorageService.of(file)
|
||||||
.setPlatform(storage.getCode())
|
.setPlatform(storage.getCode())
|
||||||
.setHashCalculatorMd5(true)
|
|
||||||
.setHashCalculatorSha256(true)
|
.setHashCalculatorSha256(true)
|
||||||
.putAttr(ClassUtil.getClassName(StorageDO.class, false), storage)
|
.putAttr(ClassUtil.getClassName(StorageDO.class, false), storage)
|
||||||
// .setPath(StrUtil.removePrefix(path, StringConstants.SLASH));
|
|
||||||
.setPath(path);
|
.setPath(path);
|
||||||
// 图片文件生成缩略图
|
// 图片文件生成缩略图
|
||||||
if (FileTypeEnum.IMAGE.getExtensions().contains(FileNameUtil.extName(file.getOriginalFilename()))) {
|
if (FileTypeEnum.IMAGE.getExtensions().contains(FileNameUtil.extName(file.getOriginalFilename()))) {
|
||||||
@@ -143,7 +141,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileMapper, FileDO, FileRes
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FileResp check(String fileHash) {
|
public FileResp check(String fileHash) {
|
||||||
FileDO file = baseMapper.lambdaQuery().eq(FileDO::getMd5, fileHash).one();
|
FileDO file = baseMapper.lambdaQuery().eq(FileDO::getSha256, fileHash).one();
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
return get(file.getId());
|
return get(file.getId());
|
||||||
}
|
}
|
||||||
@@ -169,7 +167,7 @@ public class FileServiceImpl extends BaseServiceImpl<FileMapper, FileDO, FileRes
|
|||||||
fileDo.setExtension("dir");
|
fileDo.setExtension("dir");
|
||||||
fileDo.setContentType("");
|
fileDo.setContentType("");
|
||||||
fileDo.setType(FileTypeEnum.DIR);
|
fileDo.setType(FileTypeEnum.DIR);
|
||||||
fileDo.setMd5("");
|
fileDo.setSha256("");
|
||||||
fileDo.setStorageId(storage.getId());
|
fileDo.setStorageId(storage.getId());
|
||||||
baseMapper.insert(fileDo);
|
baseMapper.insert(fileDo);
|
||||||
return new IdResp<>(fileDo.getId());
|
return new IdResp<>(fileDo.getId());
|
||||||
|
@@ -286,7 +286,7 @@ CREATE TABLE IF NOT EXISTS `sys_file` (
|
|||||||
`extension` varchar(100) DEFAULT NULL COMMENT '扩展名',
|
`extension` varchar(100) DEFAULT NULL COMMENT '扩展名',
|
||||||
`content_type` varchar(64) NOT NULL COMMENT '内容类型',
|
`content_type` varchar(64) NOT NULL COMMENT '内容类型',
|
||||||
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(0: 目录;1:其他;2:图片;3:文档;4:视频;5:音频)',
|
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(0: 目录;1:其他;2:图片;3:文档;4:视频;5:音频)',
|
||||||
`md5` varchar(128) NOT NULL COMMENT 'MD5值',
|
`sha256` varchar(256) NOT NULL COMMENT 'SHA256值',
|
||||||
`metadata` text DEFAULT NULL COMMENT '元数据',
|
`metadata` text DEFAULT NULL COMMENT '元数据',
|
||||||
`thumbnail_size` bigint(20) DEFAULT NULL COMMENT '缩略图大小(字节)',
|
`thumbnail_size` bigint(20) DEFAULT NULL COMMENT '缩略图大小(字节)',
|
||||||
`thumbnail_url` varchar(512) DEFAULT NULL COMMENT '缩略图URL',
|
`thumbnail_url` varchar(512) DEFAULT NULL COMMENT '缩略图URL',
|
||||||
@@ -294,15 +294,14 @@ CREATE TABLE IF NOT EXISTS `sys_file` (
|
|||||||
`storage_id` bigint(20) NOT NULL COMMENT '存储ID',
|
`storage_id` bigint(20) NOT NULL COMMENT '存储ID',
|
||||||
`create_user` bigint(20) NOT NULL COMMENT '创建人',
|
`create_user` bigint(20) NOT NULL COMMENT '创建人',
|
||||||
`create_time` datetime NOT NULL COMMENT '创建时间',
|
`create_time` datetime NOT NULL COMMENT '创建时间',
|
||||||
`update_user` bigint(20) NOT NULL COMMENT '修改人',
|
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
|
||||||
`update_time` datetime NOT NULL COMMENT '修改时间',
|
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
INDEX `idx_url`(`url`),
|
INDEX `idx_url`(`url`),
|
||||||
INDEX `idx_md5`(`md5`),
|
INDEX `idx_sha256`(`sha256`),
|
||||||
INDEX `idx_type`(`type`),
|
INDEX `idx_type`(`type`),
|
||||||
INDEX `idx_storage_id`(`storage_id`),
|
INDEX `idx_storage_id`(`storage_id`),
|
||||||
INDEX `idx_create_user`(`create_user`),
|
INDEX `idx_create_user`(`create_user`)
|
||||||
INDEX `idx_update_user`(`update_user`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件表';
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `sys_client` (
|
CREATE TABLE IF NOT EXISTS `sys_client` (
|
||||||
|
@@ -472,7 +472,7 @@ CREATE TABLE IF NOT EXISTS "sys_file" (
|
|||||||
"extension" varchar(100) DEFAULT NULL,
|
"extension" varchar(100) DEFAULT NULL,
|
||||||
"content_type" varchar(64) NOT NULL,
|
"content_type" varchar(64) NOT NULL,
|
||||||
"type" int2 NOT NULL DEFAULT 1,
|
"type" int2 NOT NULL DEFAULT 1,
|
||||||
"md5" varchar(128) NOT NULL,
|
"sha256" varchar(256) NOT NULL,
|
||||||
"metadata" text DEFAULT NULL,
|
"metadata" text DEFAULT NULL,
|
||||||
"thumbnail_size" int8 DEFAULT NULL,
|
"thumbnail_size" int8 DEFAULT NULL,
|
||||||
"thumbnail_url" varchar(512) DEFAULT NULL,
|
"thumbnail_url" varchar(512) DEFAULT NULL,
|
||||||
@@ -480,16 +480,15 @@ CREATE TABLE IF NOT EXISTS "sys_file" (
|
|||||||
"storage_id" int8 NOT NULL,
|
"storage_id" int8 NOT NULL,
|
||||||
"create_user" int8 NOT NULL,
|
"create_user" int8 NOT NULL,
|
||||||
"create_time" timestamp NOT NULL,
|
"create_time" timestamp NOT NULL,
|
||||||
"update_user" int8 NOT NULL,
|
"update_user" int8 DEFAULT NULL,
|
||||||
"update_time" timestamp NOT NULL,
|
"update_time" timestamp DEFAULT NULL,
|
||||||
PRIMARY KEY ("id")
|
PRIMARY KEY ("id")
|
||||||
);
|
);
|
||||||
CREATE INDEX "idx_file_url" ON "sys_file" ("url");
|
CREATE INDEX "idx_file_url" ON "sys_file" ("url");
|
||||||
CREATE INDEX "idx_file_type" ON "sys_file" ("type");
|
CREATE INDEX "idx_file_type" ON "sys_file" ("type");
|
||||||
CREATE INDEX "idx_file_md5" ON "sys_file" ("md5");
|
CREATE INDEX "idx_file_sha256" ON "sys_file" ("sha256");
|
||||||
CREATE INDEX "idx_file_storage_id" ON "sys_file" ("storage_id");
|
CREATE INDEX "idx_file_storage_id" ON "sys_file" ("storage_id");
|
||||||
CREATE INDEX "idx_file_create_user" ON "sys_file" ("create_user");
|
CREATE INDEX "idx_file_create_user" ON "sys_file" ("create_user");
|
||||||
CREATE INDEX "idx_file_update_user" ON "sys_file" ("update_user");
|
|
||||||
COMMENT ON COLUMN "sys_file"."id" IS 'ID';
|
COMMENT ON COLUMN "sys_file"."id" IS 'ID';
|
||||||
COMMENT ON COLUMN "sys_file"."name" IS '名称';
|
COMMENT ON COLUMN "sys_file"."name" IS '名称';
|
||||||
COMMENT ON COLUMN "sys_file"."size" IS '大小(字节)';
|
COMMENT ON COLUMN "sys_file"."size" IS '大小(字节)';
|
||||||
@@ -499,7 +498,7 @@ COMMENT ON COLUMN "sys_file"."abs_path" IS '绝对路径';
|
|||||||
COMMENT ON COLUMN "sys_file"."extension" IS '扩展名';
|
COMMENT ON COLUMN "sys_file"."extension" IS '扩展名';
|
||||||
COMMENT ON COLUMN "sys_file"."content_type" IS '内容类型';
|
COMMENT ON COLUMN "sys_file"."content_type" IS '内容类型';
|
||||||
COMMENT ON COLUMN "sys_file"."type" IS '类型(0: 目录;1:其他;2:图片;3:文档;4:视频;5:音频)';
|
COMMENT ON COLUMN "sys_file"."type" IS '类型(0: 目录;1:其他;2:图片;3:文档;4:视频;5:音频)';
|
||||||
COMMENT ON COLUMN "sys_file"."md5" IS 'MD5值';
|
COMMENT ON COLUMN "sys_file"."sha256" IS 'SHA256值';
|
||||||
COMMENT ON COLUMN "sys_file"."metadata" IS '元数据';
|
COMMENT ON COLUMN "sys_file"."metadata" IS '元数据';
|
||||||
COMMENT ON COLUMN "sys_file"."thumbnail_size" IS '缩略图大小(字节)';
|
COMMENT ON COLUMN "sys_file"."thumbnail_size" IS '缩略图大小(字节)';
|
||||||
COMMENT ON COLUMN "sys_file"."thumbnail_url" IS '缩略图URL';
|
COMMENT ON COLUMN "sys_file"."thumbnail_url" IS '缩略图URL';
|
||||||
|
Reference in New Issue
Block a user