三、实现fastdfs文件上传与记录文件日志

系列文章目录

一、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();
}

这些方法可以根据您的具体业务逻辑和代码结构进行调整和扩展。请确保在这些方法中处理好异常情况,并根据需要添加事务管理和权限控制。

总结:

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值