From 077cedddebbfae2d740e259e9e16b0eb363f3a02 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Mon, 19 Jan 2026 15:23:10 +0800
Subject: [PATCH] 巡查任务
---
drone-ops/drone-resource/src/main/java/org/sxkj/resource/endpoint/OssEndpoint.java | 457 ++++++++++++++++++++++++++++----------------------------
1 files changed, 230 insertions(+), 227 deletions(-)
diff --git a/drone-ops/drone-resource/src/main/java/org/sxkj/resource/endpoint/OssEndpoint.java b/drone-ops/drone-resource/src/main/java/org/sxkj/resource/endpoint/OssEndpoint.java
index 90bf860..25f9640 100644
--- a/drone-ops/drone-resource/src/main/java/org/sxkj/resource/endpoint/OssEndpoint.java
+++ b/drone-ops/drone-resource/src/main/java/org/sxkj/resource/endpoint/OssEndpoint.java
@@ -1,22 +1,7 @@
-/*
- * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * Neither the name of the dreamlu.net developer nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- * Author: Chill 庄骞 (smallchill@163.com)
- */
package org.sxkj.resource.endpoint;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import org.jetbrains.annotations.NotNull;
@@ -28,12 +13,13 @@
import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.utils.FileUtil;
import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import org.sxkj.resource.builder.OssBuilder;
import org.sxkj.resource.entity.Attach;
import org.sxkj.resource.service.IAttachService;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
import org.sxkj.resource.util.ImageCompressorUtil;
+import springfox.documentation.annotations.ApiIgnore;
import java.io.IOException;
import java.util.HashMap;
@@ -48,234 +34,251 @@
@RestController
@AllArgsConstructor
@RequestMapping("/oss/endpoint")
-@Api(value = "对象存储端点", tags = "对象存储端点")
+@Api(value = "对象存储端点", tags = "文件上传接口")
public class OssEndpoint {
- /**
- * 对象存储构建类
- */
- private final OssBuilder ossBuilder;
+ /**
+ * 对象存储构建类
+ */
+ private final OssBuilder ossBuilder;
- /**
- * 附件表服务
- */
- private final IAttachService attachService;
+ /**
+ * 附件表服务
+ */
+ private final IAttachService attachService;
- /**
- * 创建存储桶
- *
- * @param bucketName 存储桶名称
- * @return Bucket
- */
- @SneakyThrows
- @PostMapping("/make-bucket")
- @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
- public R makeBucket(@RequestParam String bucketName) {
- ossBuilder.template().makeBucket(bucketName);
- return R.success("创建成功");
- }
+ /**
+ * 创建存储桶
+ *
+ * @param bucketName 存储桶名称
+ * @return Bucket
+ */
+ @SneakyThrows
+ @PostMapping("/make-bucket")
+ @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+ @ApiIgnore
+ public R makeBucket(@RequestParam String bucketName) {
+ ossBuilder.template().makeBucket(bucketName);
+ return R.success("创建成功");
+ }
- /**
- * 创建存储桶
- *
- * @param bucketName 存储桶名称
- * @return R
- */
- @SneakyThrows
- @PostMapping("/remove-bucket")
- @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
- public R removeBucket(@RequestParam String bucketName) {
- ossBuilder.template().removeBucket(bucketName);
- return R.success("删除成功");
- }
+ /**
+ * 创建存储桶
+ *
+ * @param bucketName 存储桶名称
+ * @return R
+ */
+ @SneakyThrows
+ @PostMapping("/remove-bucket")
+ @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+ @ApiIgnore
+ public R removeBucket(@RequestParam String bucketName) {
+ ossBuilder.template().removeBucket(bucketName);
+ return R.success("删除成功");
+ }
- /**
- * 拷贝文件
- *
- * @param fileName 存储桶对象名称
- * @param destBucketName 目标存储桶名称
- * @param destFileName 目标存储桶对象名称
- * @return R
- */
- @SneakyThrows
- @PostMapping("/copy-file")
- public R copyFile(@RequestParam String fileName, @RequestParam String destBucketName, String destFileName) {
- ossBuilder.template().copyFile(fileName, destBucketName, destFileName);
- return R.success("操作成功");
- }
+ /**
+ * 拷贝文件
+ *
+ * @param fileName 存储桶对象名称
+ * @param destBucketName 目标存储桶名称
+ * @param destFileName 目标存储桶对象名称
+ * @return R
+ */
+ @SneakyThrows
+ @PostMapping("/copy-file")
+ @ApiOperation(value = "拷贝文件", notes = "拷贝文件")
+ public R copyFile(@RequestParam String fileName, @RequestParam String destBucketName, String destFileName) {
+ ossBuilder.template().copyFile(fileName, destBucketName, destFileName);
+ return R.success("操作成功");
+ }
- /**
- * 获取文件信息
- *
- * @param fileName 存储桶对象名称
- * @return InputStream
- */
- @SneakyThrows
- @GetMapping("/stat-file")
- public R<OssFile> statFile(@RequestParam String fileName) {
- return R.data(ossBuilder.template().statFile(fileName));
- }
+ /**
+ * 获取文件信息
+ *
+ * @param fileName 存储桶对象名称
+ * @return InputStream
+ */
+ @SneakyThrows
+ @GetMapping("/stat-file")
+ @ApiOperation(value = "获取文件信息", notes = "获取文件信息")
+ public R<OssFile> statFile(@RequestParam String fileName) {
+ return R.data(ossBuilder.template().statFile(fileName));
+ }
- /**
- * 获取文件相对路径
- *
- * @param fileName 存储桶对象名称
- * @return String
- */
- @SneakyThrows
- @GetMapping("/file-path")
- public R<String> filePath(@RequestParam String fileName) {
- return R.data(ossBuilder.template().filePath(fileName));
- }
+ /**
+ * 获取文件相对路径
+ *
+ * @param fileName 存储桶对象名称
+ * @return String
+ */
+ @SneakyThrows
+ @GetMapping("/file-path")
+ @ApiOperation(value = "获取文件相对路径", notes = "获取文件相对路径")
+ public R<String> filePath(@RequestParam String fileName) {
+ return R.data(ossBuilder.template().filePath(fileName));
+ }
- /**
- * 获取文件外链
- *
- * @param fileName 存储桶对象名称
- * @return String
- */
- @SneakyThrows
- @GetMapping("/file-link")
- public R<String> fileLink(@RequestParam String fileName) {
- return R.data(ossBuilder.template().fileLink(fileName));
- }
+ /**
+ * 获取文件外链
+ *
+ * @param fileName 存储桶对象名称
+ * @return String
+ */
+ @SneakyThrows
+ @GetMapping("/file-link")
+ @ApiOperation(value = "获取文件外链", notes = "获取文件外链")
+ public R<String> fileLink(@RequestParam String fileName) {
+ return R.data(ossBuilder.template().fileLink(fileName));
+ }
- /**
- * 上传文件
- *
- * @param file 文件
- * @return ObjectStat
- */
- @SneakyThrows
- @PostMapping("/put-file")
- public R<BladeFile> putFile(@RequestParam MultipartFile file) {
- BladeFile bladeFile = ossBuilder.template().putFile(file.getOriginalFilename(), file.getInputStream());
- return R.data(bladeFile);
- }
+ /**
+ * 上传文件
+ *
+ * @param file 文件
+ * @return ObjectStat
+ */
+ @SneakyThrows
+ @PostMapping("/put-file")
+ @ApiOperation(value = "上传文件", notes = "上传文件")
+ public R<BladeFile> putFile(@RequestParam MultipartFile file) {
+ BladeFile bladeFile = ossBuilder.template().putFile(file.getOriginalFilename(), file.getInputStream());
+ return R.data(bladeFile);
+ }
- /**
- * 上传文件
- *
- * @param fileName 存储桶对象名称
- * @param file 文件
- * @return ObjectStat
- */
- @SneakyThrows
- @PostMapping("/put-file-by-name")
- public R<BladeFile> putFile(@RequestParam String fileName, @RequestParam MultipartFile file) {
- BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
- return R.data(bladeFile);
- }
+ /**
+ * 上传文件
+ *
+ * @param fileName 存储桶对象名称
+ * @param file 文件
+ * @return ObjectStat
+ */
+ @SneakyThrows
+ @PostMapping("/put-file-by-name")
+ @ApiOperation(value = "上传文件", notes = "上传文件-存储桶对象名称")
+ public R<BladeFile> putFile(@RequestParam String fileName, @RequestParam MultipartFile file) {
+ BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
+ return R.data(bladeFile);
+ }
- /**
- * 上传文件并保存至附件表
- *
- * @param file 文件
- * @return ObjectStat
- */
- @SneakyThrows
- @PostMapping("/put-file-attach")
- public R<BladeFile> putFileAttach(@RequestParam MultipartFile file) {
- BladeFile bladeFile = getBladeFile(file);
- return R.data(bladeFile);
- }
+ /**
+ * 上传文件并保存至附件表
+ *
+ * @param file 文件
+ * @return ObjectStat
+ */
+ @SneakyThrows
+ @PostMapping("/put-file-attach")
+ @ApiOperation(value = "上传文件并保存至附件表", notes = "上传文件并保存至附件表")
+ public R<BladeFile> putFileAttach(@RequestParam MultipartFile file) {
+ BladeFile bladeFile = getBladeFile(file);
+ return R.data(bladeFile);
+ }
- /**
- * 上传文件并保存至附件表
- *
- * @param fileName 存储桶对象名称
- * @param file 文件
- * @return ObjectStat
- */
- @SneakyThrows
- @PostMapping("/put-file-attach-by-name")
- public R<BladeFile> putFileAttach(@RequestParam String fileName, @RequestParam MultipartFile file) {
- BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
- Long attachId = buildAttach(fileName, file.getSize(), bladeFile);
- bladeFile.setAttachId(attachId);
- return R.data(bladeFile);
- }
+ /**
+ * 上传文件并保存至附件表
+ *
+ * @param fileName 存储桶对象名称
+ * @param resultType 结果类型
+ * @param file 上传文件
+ * @return BladeFile
+ */
+ @SneakyThrows
+ @PostMapping("/put-file-attach-by-name")
+ @ApiOperation(value = "上传文件并保存至附件表", notes = "上传文件并保存至附件表-存储桶对象名称")
+ public R<BladeFile> putFileAttach(@RequestParam String fileName,
+ @RequestParam Integer resultType,
+ @RequestParam MultipartFile file) {
+ BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
+ Long attachId = buildAttach(fileName, resultType, file.getSize(), bladeFile);
+ bladeFile.setAttachId(attachId);
+ return R.data(bladeFile);
+ }
- /**
- * 上传原图和压缩图并保存至附件表
- *
- * @param file 文件
- * @return ObjectStat
- */
- @SneakyThrows
- @PostMapping("/put-file-cop-attach")
- public R putFileCopAttach(@RequestParam MultipartFile file) {
- // 上传之前先压缩
- MultipartFile compressImage = ImageCompressorUtil.compressImage(file,null);
- // 上传
- BladeFile bladeFile = getBladeFile(file);
- BladeFile compressFile = getBladeFile(compressImage);
- //
- Map<String, Object> map = new HashMap<>(2);
- map.put("yt",bladeFile);
- map.put("yst",compressFile);
- // 返回
- return R.data(bladeFile);
- }
+ /**
+ * 上传原图和压缩图并保存至附件表
+ *
+ * @param file 文件
+ * @return ObjectStat
+ */
+ @SneakyThrows
+ @PostMapping("/put-file-cop-attach")
+ @ApiOperation(value = "上传原图和压缩图并保存至附件表", notes = "上传原图和压缩图并保存至附件表")
+ public R putFileCopAttach(@RequestParam MultipartFile file) {
+ // 上传之前先压缩
+ MultipartFile compressImage = ImageCompressorUtil.compressImage(file, null);
+ // 上传
+ BladeFile bladeFile = getBladeFile(file);
+ BladeFile compressFile = getBladeFile(compressImage);
+ //
+ Map<String, Object> map = new HashMap<>(2);
+ map.put("yt", bladeFile);
+ map.put("yst", compressFile);
+ // 返回
+ return R.data(bladeFile);
+ }
- @NotNull
- private BladeFile getBladeFile(@RequestParam MultipartFile file) throws IOException {
- String fileName = file.getOriginalFilename();
- BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
- Long attachId = buildAttach(fileName, file.getSize(), bladeFile);
- bladeFile.setAttachId(attachId);
- return bladeFile;
- }
+ @NotNull
+ private BladeFile getBladeFile(@RequestParam MultipartFile file) throws IOException {
+ String fileName = file.getOriginalFilename();
+ BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
+ Long attachId = buildAttach(fileName, null, file.getSize(), bladeFile);
+ bladeFile.setAttachId(attachId);
+ return bladeFile;
+ }
- /**
- * 构建附件表
- *
- * @param fileName 文件名
- * @param fileSize 文件大小
- * @param bladeFile 对象存储文件
- * @return attachId
- */
- private Long buildAttach(String fileName, Long fileSize, BladeFile bladeFile) {
- String fileExtension = FileUtil.getFileExtension(fileName);
- Attach attach = new Attach();
- attach.setDomainUrl(bladeFile.getDomain());
- attach.setLink(bladeFile.getLink());
- attach.setName(bladeFile.getName());
- attach.setOriginalName(bladeFile.getOriginalName());
- attach.setAttachSize(fileSize);
- attach.setExtension(fileExtension);
- attachService.save(attach);
- return attach.getId();
- }
+ /**
+ * 构建附件表
+ *
+ * @param fileName 文件名
+ * @param fileSize 文件大小
+ * @param bladeFile 对象存储文件
+ * @return attachId
+ */
+ private Long buildAttach(String fileName, Integer resultType, Long fileSize, BladeFile bladeFile) {
+ String fileExtension = FileUtil.getFileExtension(fileName);
+ Attach attach = new Attach();
+ attach.setDomainUrl(bladeFile.getDomain());
+ attach.setLink(bladeFile.getLink());
+ attach.setName(bladeFile.getName());
+ attach.setResultType(resultType);
+ attach.setOriginalName(bladeFile.getOriginalName());
+ attach.setAttachSize(fileSize);
+ attach.setExtension(fileExtension);
+ attachService.save(attach);
+ return attach.getId();
+ }
- /**
- * 删除文件
- *
- * @param fileName 存储桶对象名称
- * @return R
- */
- @SneakyThrows
- @PostMapping("/remove-file")
- @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
- public R removeFile(@RequestParam String fileName) {
- ossBuilder.template().removeFile(fileName);
- return R.success("操作成功");
- }
+ /**
+ * 删除文件
+ *
+ * @param fileName 存储桶对象名称
+ * @return R
+ */
+ @SneakyThrows
+ @PostMapping("/remove-file")
+ @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+ @ApiOperation(value = "删除文件", notes = "删除文件")
+ public R removeFile(@RequestParam String fileName) {
+ ossBuilder.template().removeFile(fileName);
+ return R.success("操作成功");
+ }
- /**
- * 批量删除文件
- *
- * @param fileNames 存储桶对象名称集合
- * @return R
- */
- @SneakyThrows
- @PostMapping("/remove-files")
- @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
- public R removeFiles(@RequestParam String fileNames) {
- ossBuilder.template().removeFiles(Func.toStrList(fileNames));
- return R.success("操作成功");
- }
+ /**
+ * 批量删除文件
+ *
+ * @param fileNames 存储桶对象名称集合
+ * @return R
+ */
+ @SneakyThrows
+ @PostMapping("/remove-files")
+ @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+ @ApiOperation(value = "批量删除文件", notes = "批量删除文件")
+ public R removeFiles(@RequestParam String fileNames) {
+ ossBuilder.template().removeFiles(Func.toStrList(fileNames));
+ return R.success("操作成功");
+ }
}
--
Gitblit v1.9.3