编程随笔 编程随笔
  • 前端
  • 后端
  • 星球项目
  • 开源项目
  • 海康AGV
  • 四向车
  • 工具类
  • 项目仓库

    • 部署仓库 (opens new window)
    • 代码仓库 (opens new window)
  • vuepress插件

    • 自动生成导航栏与侧边栏 (opens new window)
    • 评论系统 (opens new window)
    • 全文搜索 (opens new window)
    • 选项卡 (opens new window)
    • 自动生成sitemap (opens new window)
  • 自主开发插件

    • 批量操作frontmatter (opens new window)
    • 链接美化 (opens new window)
    • 折叠代码块 (opens new window)
    • 复制代码块 (opens new window)

liyao52033

走运时,要想到倒霉,不要得意得过了头;倒霉时,要想到走运,不必垂头丧气。心态始终保持平衡,情绪始终保持稳定,此亦长寿之道
  • 前端
  • 后端
  • 星球项目
  • 开源项目
  • 海康AGV
  • 四向车
  • 工具类
  • 项目仓库

    • 部署仓库 (opens new window)
    • 代码仓库 (opens new window)
  • vuepress插件

    • 自动生成导航栏与侧边栏 (opens new window)
    • 评论系统 (opens new window)
    • 全文搜索 (opens new window)
    • 选项卡 (opens new window)
    • 自动生成sitemap (opens new window)
  • 自主开发插件

    • 批量操作frontmatter (opens new window)
    • 链接美化 (opens new window)
    • 折叠代码块 (opens new window)
    • 复制代码块 (opens new window)
  • springboot

  • 服务器相关

  • 腾讯云cos对象操作

    • 初始化客户端
    • 文件上传
    • 文件下载
    • 文件删除
      • 后端
      • 前端
    • NodeJs获取签名
  • 后端
  • 腾讯云cos对象操作
华总
2023-10-03
0
0
目录

文件删除原创

# 后端

# CosManager.java

 /**
     *删除对象
     *
     * @param key 唯一键
     */
    public void deleteObjects(String key) {
       // 调用 COS 接口之前必须保证本进程存在一个 COSClient 实例,如果没有则创建
       COSClient cosClient = createCOSClient();
      
      //删除文件
       DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest(bucket,key);
       cosClient.deleteObject(deleteObjectRequest);
      
        // 确认本进程不再使用 cosClient 实例之后,关闭即可
       cosClient.shutdown();
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# CosController.java

 /**
     * 文件删除
     *
     * @param uploadFileRequest 对象在cos中的url
     * @return 用户id
     */
    @Operation(summary = "文件删除")
    @PostMapping("/delete")
    public BaseResponse deleteCos(@RequestBody UploadFileRequest uploadFileRequest, HttpServletRequest request) {
        userService.getLoginUser(request);
        String filepath = uploadFileRequest.getFilepath();
        String key = filepath.replace(HOST, "");
        try {

            boolean objectExists = cosClient.doesObjectExist(cosClientConfig.getBucket(), key);
            if (!objectExists) {
                // 如果对象不存在,返回相应的响应
                throw new BusinessException(ErrorCode.NOT_FOUND_ERROR, "对象不存在");
            }
            // 尝试删除对象
            cosManager.deleteObjects(key);

            // 如果删除成功,返回成功响应
            return ResultUtils.success(key);

        } catch (Exception e) {
            // 捕获并处理异常
            log.error("file delete error, key = {}", key);

            // 返回包含错误信息的响应
            return ResultUtils.error(ErrorCode.SYSTEM_ERROR,"删除文件时发生异常: " + e.getMessage());
        }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 前端

基于vue3 + ts + elementplus

# 接口

  /**
     * 文件删除
     * @param requestBody 
     * @returns BaseResponse OK
     * @throws ApiError
     */
    public static deleteCos(
requestBody: UploadFileRequest,
): CancelablePromise<BaseResponse> {
        return __request(OpenAPI, {
            method: 'POST',
            url: '/cos/delete',
            body: requestBody,
            mediaType: 'application/json',
        });
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 使用

html

	<el-button type="primary" @click="deleteFile">删除</el-button>
1

ts

function deleteUser({ $index, row }) {
  return new Promise((resolve, reject) => {
	UserControllerService.deleteCos({filepath: row.key}).then(res => {
	  tableData.value.splice($index, 1)
	  ElMessage({
      message: '删除成功',
      type: 'success',
      duration: 5 * 1000
	  })
	  getUser()
	  resolve(res.data)
	}).catch((error) => {
	  reject(error);
	})
  })
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#后端#COS
上次更新: 2024/01/11 18:04:10
文件下载
NodeJs获取签名

← 文件下载 NodeJs获取签名→

最近更新
01
element-plus多文件手动上传 原创
11-03
02
TrueLicense 创建及安装证书 原创
10-25
03
手动修改迅捷配置 原创
09-03
04
安装 acme.sh 原创
08-29
05
zabbix部署 原创
08-20
更多文章>
Copyright © 2023-2024 liyao52033
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式