首页IT科技如何删除附件2页文档(第2-3-5章 删除附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss)

如何删除附件2页文档(第2-3-5章 删除附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss)

时间2025-05-05 04:38:43分类IT科技浏览2956
导读:5.4 接口开发-根据id删除附件 第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令...

5.4 接口开发-根据id删除附件

第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令

第2-1-3章 docker-compose安装FastDFS,实现文件存储服务

第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

全套代码及资料全部完整提供          ,点此处下载

5.4.1 接口文档

根据id删除附件接口要完成的操作主要有两个:

将客户端上传的文件从指定存储位置(具体存储位置由配置文件配置的存储策略确定)删除 将文件信息从数据库的pd_attachment表中删除

根据id删除附件功能的接口文档如下:

5.4.2 代码实现

第一步:在AttachmentController中提供文件删除的方法

@ApiOperation(value = "删除文件", notes = "删除文件") @ApiImplicitParams({ @ApiImplicitParam(name = "ids[]", value = "文件ids", dataType = "array", paramType = "query"), }) @DeleteMapping public R<Boolean> remove(@RequestParam(value = "ids[]") Long[] ids) { attachmentService.remove(ids); return success(true); }

第二步:在AttachmentService接口中扩展remove方法

/** * 删除附件 * * @param ids */ void remove(Long[] ids);

第三步:在AttachmentServiceImpl实现类中实现remove方法

/** *根据id删除附件 * @param ids */ @Override public void remove(Long[] ids) { if (ArrayUtils.isEmpty(ids)) { return; } //查询数据库 List<Attachment> list = super.list(Wrappers.<Attachment>lambdaQuery(). in(Attachment::getId, ids)); if (list.isEmpty()) { return; } //删除数据库中的记录 super.removeByIds(Arrays.asList(ids)); //对象格式处理 List<FileDeleteDO> fileDeleteDOList = list.stream().map((fi) -> FileDeleteDO.builder() .relativePath(fi.getRelativePath()) //文件在服务器的相对路径 .fileName(fi.getFilename()) //唯一文件名 .group(fi.getGroup()) //fastDFS返回的组 用于FastDFS .path(fi.getPath()) //fastdfs 的路径 .build()) .collect(Collectors.toList()); //删除文件 fileStrategy.delete(fileDeleteDOList); } 5.4.3 接口测试

第一步:启动Nacos配置中心

第二步:启动Nginx服务

第三步:启动文件服务

第四步:访问接口文档                  ,地址为http://localhost:8765/doc.html

可以看到pd_attachment表中对应的记录已经删除掉了     ,对应的文件也已经被删除掉了          。

5.4.4 测试ALI和FAST_DFS以及MINIO上传和删除的接口

注:可以修改Nacos中的pd-file-server.yml配置文件       ,将存储策略改为ALI和FAST_DFS以及MINIO来测试文件的存储策略是否发生了变化                  。

5.4.4.1 阿里云OSS上传和删除 上传 删除 删除后就资源就无法访问了 5.4.4.2 FastDFS上传和删除

上传

查看资源

删除操作后再查看

5.4.4.3 Minio上传和删除 上传 查看minio中资源存储情况 查看图片 删除图片 删除成功                  ,资源已经不存在

5.5 接口开发-根据业务类型/业务id删除附件

5.5.1 接口文档

根据业务类型/业务id删除附件接口要完成的操作主要有两个:

将客户端上传的文件从指定存储位置(具体存储位置由配置文件配置的存储策略确定)删除 将文件信息从数据库的pd_attachment表中删除

根据业务类型/业务id删除附件功能的接口文档如下:

5.5.2 代码实现

第一步:在AttachmentController中提供根据业务类型/业务id删除文件的方法

@ApiOperation(value = "根据业务类型或业务id删除文件", notes = "根据业务类型或业务id删除文件") @DeleteMapping(value = "/biz") public R<Boolean> removeByBizIdAndBizType( @RequestBody AttachmentRemoveDTO dto) { attachmentService.removeByBizIdAndBizType(dto.getBizId(), dto.getBizType()); return success(true); }

第二步:在AttachmentService接口中扩展removeByBizIdAndBizType方法

/** * 根据业务id/业务类型删除附件 * * @param bizId * @param bizType */ void removeByBizIdAndBizType(String bizId, String bizType);

第三步:在AttachmentServiceImpl实现类中实现removeByBizIdAndBizType方法

/** * 根据业务id和业务类型删除附件 * * @param bizId * @param bizType */ @Override public void removeByBizIdAndBizType(String bizId, String bizType) { //根据业务类和业务id查询数据库 List<Attachment> list = super.list( Wraps.<Attachment>lbQ() .eq(Attachment::getBizId, bizId) .eq(Attachment::getBizType, bizType)); if (list.isEmpty()) { return; } //根据id删除文件 remove(list.stream().mapToLong( Attachment::getId).boxed().toArray(Long[]::new)); } 5.5.3 接口测试

第一步:启动Nacos配置中心

第二步:启动Nginx服务

第三步:启动文件服务

第四步:访问接口文档        ,地址为http://localhost:8765/doc.html

可以看到pd_attachment表中对应的记录已经删除掉了    ,对应的文件也已经被删除掉了     。

第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令

第2-1-3章 docker-compose安装FastDFS,实现文件存储服务

第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

全套代码及资料全部完整提供                 ,点此处下载

声明:本站所有文章           ,如无特殊说明或标注  ,均为本站原创发布       。任何个人或组织                ,在未征得本站同意时              ,禁止复制            、盗用               、采集      、发布本站内容到任何网站         、书籍等各类媒体平台                  。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
网站如何做seo排名优化方案(网站如何做seo排名优化服务)