系列文章目录
一、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);//回写fileIdfileItem.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();
}
这些方法可以根据您的具体业务逻辑和代码结构进行调整和扩展。请确保在这些方法中处理好异常情况,并根据需要添加事务管理和权限控制。