系列文章目录
一、Spring Boot 中集成 fastdfs文件上传
二、实现fastdfs文件上传与延迟删除功能的Spring Boot项目
三、实现fastdfs文件上传与记录文件日志
前言
希望实现 FastDFS文件上传的同时并记录文件日志
提示:以下是本篇文章正文内容,下面案例可供参考
一、 设计文件日志类
这段代码是一个Java实体类,用于表示文件日志信息。它包含了文件日志的各种属性,如文件ID、项目代码、原始文件名、URL、文件扩展名、文件大小、操作是否成功、错误信息等。同时,还包括了记录创建时间、更新时间、是否删除等字段。
@TableName("file_log")
@Data
public class FileLog implements Serializable,ProjectEntity {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type=IdType.AUTO)
private Integer id;
/**
* project_code
*/
private String projectCode;
/**
* original_name
*/
private String originalName;
/**
* url
*/
private String url;
/**
* 文件类型,扩展名
*/
private String extension;
/**
* 文件大小,默认字节
*/
private Long byteSize;
/**
* succeed
*/
private Integer succeed;
private Integer exist;
/**
* error_msg
*/
private String errorMsg;
/**
* create_time
*/
private Date createTime;
/**
* update_time
*/
private Date updateTime;
/**
* is_deleted
*/
private Integer isDeleted;
public FileLog() {
}
}
二、增加日志操作方法
以下是对 FileItem 类的属性进行简要说明
// 以下是对 FileItem 类的属性进行简要说明
public class FileItem {
/**
* 文件唯一标识符
*/
private Long id;
/**
* 文件名
*/
private String name;
/**
* 文件URL地址
*/
private String url;
/**
* 文件大小(以字节为单位)
*/
private Long fileSizeByte;
/**
* 文件大小(以MB为单位)
*/
private String fileSizeMb;
/**
* 文件扩展名
*/
private String extension;
/**
* 文件对象
*/
private transient File file;
}
保存方法
private void saveLog(FileItem fileItem, String projectCode) {
FileLog entity = new FileLog();
entity.setProjectCode(projectCode);
entity.setExtension(fileItem.getExtension());
entity.setIsDeleted(YnEnum.NO.getCode());
entity.setOriginalName(fileItem.getName());
entity.setUrl(fileItem.getUrl());
entity.setByteSize(fileItem.getFileSizeByte());
entity.setCreateTime(DateKit.now());
entity.setUpdateTime(DateKit.now());
// 先只记录成功的,失败的,会发报警邮件
entity.setSucceed(YnEnum.YES.getCode());
entity.setErrorMsg("");
super.save(entity);
//回写fileId
fileItem.setId(Long.valueOf(entity.getId()));
}
删除文件日志方法
public void deleteLog(Long fileId) {
// 根据文件ID删除文件日志信息
fileLogRepository.deleteById(fileId);
}
查看文件日志明细方法
public FileLog getLogDetails(Long fileId) {
// 根据文件ID查询文件日志信息
return fileLogRepository.findById(fileId).orElse(null);
}
获取文件日志列表方法
public List<FileLog> getAllLogs() {
// 获取所有文件日志信息列表
return fileLogRepository.findAll();
}
这些方法可以根据您的具体业务逻辑和代码结构进行调整和扩展。请确保在这些方法中处理好异常情况,并根据需要添加事务管理和权限控制。