浏览代码

修改wps文件上传为腾讯云cos文件上传

syh 5 年之前
父节点
当前提交
d404f4dd90

+ 13 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/wps/controller/WpsFileController.java

@@ -1,5 +1,7 @@
 package org.jeecg.modules.wps.controller;
 package org.jeecg.modules.wps.controller;
 
 
+import cn.com.ctop.common.module.constant.CtopRoleCodeConstant;
+import cn.com.ctop.common.module.service.ISysRoleService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -36,7 +38,8 @@ import java.util.Map;
 public class WpsFileController {
 public class WpsFileController {
 	@Autowired
 	@Autowired
 	private IWpsFileService wpsFileService;
 	private IWpsFileService wpsFileService;
-
+	@Autowired
+	private ISysRoleService sysRoleService;
 	@PostMapping("bindProject")
 	@PostMapping("bindProject")
 	public Map<String,Object> bindProject(String fileId,Long projectId){
 	public Map<String,Object> bindProject(String fileId,Long projectId){
 		return wpsFileService.bindProject(fileId,projectId);
 		return wpsFileService.bindProject(fileId,projectId);
@@ -71,10 +74,18 @@ public class WpsFileController {
 												@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 												@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 												@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 												@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 												HttpServletRequest req) {
 												HttpServletRequest req) {
+		String name = wpsFile.getName();
+		wpsFile.setName(null);
 		Result<IPage<WpsFile>> result = new Result<>();
 		Result<IPage<WpsFile>> result = new Result<>();
 		QueryWrapper<WpsFile> queryWrapper = QueryGenerator.initQueryWrapper(wpsFile, req.getParameterMap());
 		QueryWrapper<WpsFile> queryWrapper = QueryGenerator.initQueryWrapper(wpsFile, req.getParameterMap());
+		if(null!=name&&!name.trim().equals("")){
+			queryWrapper.like("name",name);
+		}
 		LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 		LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-		queryWrapper.eq("creator",sysUser.getId());
+		String roleCode = sysRoleService.getRoleCodeByUserId(sysUser.getId());
+		if(null==roleCode||!roleCode.equals(CtopRoleCodeConstant.COMMON_ROLE_CODE_ADMIN)){
+			queryWrapper.eq("creator",sysUser.getId());
+		}
 		Page<WpsFile> page = new Page<>(pageNo, pageSize);
 		Page<WpsFile> page = new Page<>(pageNo, pageSize);
 		IPage<WpsFile> pageList = wpsFileService.page(page, queryWrapper);
 		IPage<WpsFile> pageList = wpsFileService.page(page, queryWrapper);
 		result.setSuccess(true);
 		result.setSuccess(true);

+ 8 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/wps/service/impl/WpsFileServiceImpl.java

@@ -1,7 +1,10 @@
 package org.jeecg.modules.wps.service.impl;
 package org.jeecg.modules.wps.service.impl;
 
 
+import cn.com.ctop.common.module.file.FileUtil;
+import cn.com.ctop.common.module.utils.CosUtils;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
 import cn.com.ctop.common.module.utils.StatusCode;
+import cn.com.ctop.common.module.vo.ResFileDTO;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
@@ -14,13 +17,14 @@ import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecg.modules.wps.config.Context;
 import org.jeecg.modules.wps.config.Context;
 import org.jeecg.modules.wps.dto.*;
 import org.jeecg.modules.wps.dto.*;
-import org.jeecg.modules.wps.entity.*;
+import org.jeecg.modules.wps.entity.WpsFile;
+import org.jeecg.modules.wps.entity.WpsFileVersion;
+import org.jeecg.modules.wps.entity.WpsFileWatermark;
+import org.jeecg.modules.wps.entity.WpsUser;
 import org.jeecg.modules.wps.mapper.WpsFileMapper;
 import org.jeecg.modules.wps.mapper.WpsFileMapper;
 import org.jeecg.modules.wps.service.*;
 import org.jeecg.modules.wps.service.*;
 import org.jeecg.modules.wps.util.Token;
 import org.jeecg.modules.wps.util.Token;
 import org.jeecg.modules.wps.util.WpsUtil;
 import org.jeecg.modules.wps.util.WpsUtil;
-import org.jeecg.modules.wps.util.file.FileUtil;
-import org.jeecg.modules.wps.util.upload.ResFileDTO;
 import org.jeecg.modules.wps.util.upload.oss.WpsOSSUtil;
 import org.jeecg.modules.wps.util.upload.oss.WpsOSSUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -265,7 +269,7 @@ public class WpsFileServiceImpl extends ServiceImpl<WpsFileMapper, WpsFile> impl
     public Map<String,Object> fileSave(MultipartFile mFile,String userId,String fileId){
     public Map<String,Object> fileSave(MultipartFile mFile,String userId,String fileId){
         Date date = new Date();
         Date date = new Date();
         // 上传
         // 上传
-        ResFileDTO resFileDTO = WpsOSSUtil.uploadMultipartFile(mFile);
+        ResFileDTO resFileDTO = CosUtils.uploadMultipartFile(mFile,"script-lib/wps/");
         int size = (int) resFileDTO.getFileSize();
         int size = (int) resFileDTO.getFileSize();
         WpsFile file = this.getById(fileId);
         WpsFile file = this.getById(fileId);
         FileDTO fileInfo = new FileDTO();
         FileDTO fileInfo = new FileDTO();

+ 4 - 15
jeecg-boot-module-system/src/main/java/org/jeecg/modules/wps/util/upload/oss/WpsOSSUtil.java

@@ -1,14 +1,14 @@
 package org.jeecg.modules.wps.util.upload.oss;
 package org.jeecg.modules.wps.util.upload.oss;
 
 
+import cn.com.ctop.common.module.file.FileType;
+import cn.com.ctop.common.module.file.FileTypeJudge;
+import cn.com.ctop.common.module.file.FileUtil;
+import cn.com.ctop.common.module.vo.ResFileDTO;
 import com.aliyun.oss.HttpMethod;
 import com.aliyun.oss.HttpMethod;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.model.*;
 import com.aliyun.oss.model.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
-import org.jeecg.modules.wps.util.file.FileType;
-import org.jeecg.modules.wps.util.file.FileTypeJudge;
-import org.jeecg.modules.wps.util.file.FileUtil;
-import org.jeecg.modules.wps.util.upload.ResFileDTO;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
@@ -46,17 +46,6 @@ public class WpsOSSUtil {
         return new OSSClient(endpoint,accessKey, accessSecret);
         return new OSSClient(endpoint,accessKey, accessSecret);
     }
     }
 
 
-    public static String simpleUploadFilePath(String filePath){
-        File file = new File(filePath);
-        return simpleUploadFile(file);
-    }
-
-    public static String simpleUploadFile(File file){
-        String fileName = file.getName();
-        String newFileName = FileUtil.makeNewFileName(fileName);
-        getOSSClient().putObject(bucketName, diskName + newFileName, file);
-        return (fileUrlPrefix + diskName + newFileName);
-    }
 
 
     public String simpleUploadMultipartFile(MultipartFile file){
     public String simpleUploadMultipartFile(MultipartFile file){
         String fileName = file.getOriginalFilename();
         String fileName = file.getOriginalFilename();

+ 5 - 0
module-common/pom.xml

@@ -78,6 +78,11 @@
             <artifactId>groovy</artifactId>
             <artifactId>groovy</artifactId>
             <version>${groovy.version}</version>
             <version>${groovy.version}</version>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.qcloud</groupId>
+            <artifactId>cos_api</artifactId>
+            <version>5.6.25</version>
+        </dependency>
 
 
     </dependencies>
     </dependencies>
 
 

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/wps/util/file/FileType.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.wps.util.file;
+package cn.com.ctop.common.module.file;
 
 
 /**
 /**
  * 文件类型枚取
  * 文件类型枚取

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/wps/util/file/FileTypeJudge.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.wps.util.file;
+package cn.com.ctop.common.module.file;
 
 
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/wps/util/file/FileUtil.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.wps.util.file;
+package cn.com.ctop.common.module.file;
 
 
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;

+ 3 - 2
module-common/src/main/java/cn/com/ctop/common/module/service/impl/RefreshTokenServiceImpl.java

@@ -6,6 +6,7 @@ import cn.com.ctop.common.module.service.ICtopOauthTokenService;
 import cn.com.ctop.common.module.service.IRefreshTokenService;
 import cn.com.ctop.common.module.service.IRefreshTokenService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
+import com.xxl.job.core.log.XxlJobLogger;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -31,14 +32,14 @@ public class RefreshTokenServiceImpl implements IRefreshTokenService {
 
 
         if (!Check.isNull(oauthTokens)) {
         if (!Check.isNull(oauthTokens)) {
             for (CtopOauthToken oauthToken : oauthTokens) {
             for (CtopOauthToken oauthToken : oauthTokens) {
-                log.info("刷新token,accountId:{}", oauthToken.getAccountId());
+                XxlJobLogger.log("刷新token,accountId:{}", oauthToken.getAccountId());
                 //快手
                 //快手
                 if (CtopAdConstant.PLATFORM_TYPE_KUAISHOU.equals(oauthToken.getMediaId().trim())) {
                 if (CtopAdConstant.PLATFORM_TYPE_KUAISHOU.equals(oauthToken.getMediaId().trim())) {
                     oauthTokenService.getKuaiShouRefreshToken(oauthToken.getAccountId(), oauthToken.getAccessToken(), oauthToken.getRefreshToken(), oauthToken.getAgentType());
                     oauthTokenService.getKuaiShouRefreshToken(oauthToken.getAccountId(), oauthToken.getAccessToken(), oauthToken.getRefreshToken(), oauthToken.getAgentType());
                 }
                 }
             }
             }
         } else {
         } else {
-            log.error("----------------------刷新token获取数据返回结果为空----------------------------------");
+            XxlJobLogger.log("----------------------刷新token获取数据返回结果为空----------------------------------");
         }
         }
     }
     }
 
 

+ 295 - 0
module-common/src/main/java/cn/com/ctop/common/module/utils/CosUtils.java

@@ -0,0 +1,295 @@
+package cn.com.ctop.common.module.utils;
+
+import cn.com.ctop.common.module.file.FileType;
+import cn.com.ctop.common.module.file.FileTypeJudge;
+import cn.com.ctop.common.module.vo.ResFileDTO;
+import com.qcloud.cos.COSClient;
+import com.qcloud.cos.ClientConfig;
+import com.qcloud.cos.auth.BasicCOSCredentials;
+import com.qcloud.cos.auth.COSCredentials;
+import com.qcloud.cos.exception.CosClientException;
+import com.qcloud.cos.exception.CosServiceException;
+import com.qcloud.cos.model.*;
+import com.qcloud.cos.region.Region;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+public class CosUtils {
+    private static final String ACCESSKEY = "AKIDE6IpMi8fJQRCg1iuWzFajjRs43kbbets";
+    private static final String SECRETKEY ="tXzuwMfplTTK3c9GFUyETilasvQfePu9";
+    private static final String APPID = "1301855440";
+    private static final String BUCKETNAME = "media-"+APPID;
+    private static final String REGIONID = "ap-chongqing";
+    private static final String URL_PREFIX = "https://"+BUCKETNAME+".cos.ap-chongqing.myqcloud.com/";
+    /**
+     * https://media-1301855440.cos.ap-chongqing.myqcloud.com/MyFile1/1234.mp4
+     */
+    /**
+     * 初始化CosClient相关配置, appid、accessKey、secretKey、region
+     * @return
+     */
+    public static COSClient getCosClient() {
+        // 1 初始化用户身份信息(secretId, secretKey)
+        COSCredentials cred = new BasicCOSCredentials(ACCESSKEY, SECRETKEY);
+        // 2 设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
+        // clientConfig中包含了设置region, https(默认http), 超时, 代理等set方法, 使用可参见源码或者接口文档FAQ中说明
+        ClientConfig clientConfig = new ClientConfig(new Region(REGIONID));
+        // 3 生成cos客户端
+        COSClient cosClient = new COSClient(cred, clientConfig);
+        // bucket的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式
+        //String bucketName = BUCKETNAME;
+        return cosClient;
+    }
+
+    /**
+     * URL_PREFIX+fileSavePath+fileName
+     * 上传文件
+     * @return
+     * //绝对路径和相对路径都OK
+     */
+    public static String uploadFile(String filePath,String fileSavePath,String fileName) {
+        File localFile = new File(filePath);
+        PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKETNAME, fileSavePath+fileName, localFile);
+        // 设置存储类型, 默认是标准(Standard), 低频(standard_ia),一般为标准的
+        putObjectRequest.setStorageClass(StorageClass.Standard);
+        COSClient cc = getCosClient();
+        try {
+            PutObjectResult putObjectResult = cc.putObject(putObjectRequest);
+            String etag = putObjectResult.getETag();
+            return etag;
+        } catch (CosServiceException e) {
+            e.printStackTrace();
+        } catch (CosClientException e) {
+            e.printStackTrace();
+        }finally {
+            // 关闭客户端
+            cc.shutdown();
+        }
+        return null;
+    }
+
+    /**
+     * 下载文件
+     * @param bucketName
+     * @param key
+     * @return
+     */
+    public static String downLoadFile(String bucketName, String key) {
+        File downFile = new File("E:\\software\\1.jpg");
+        COSClient cc = getCosClient();
+        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
+
+        ObjectMetadata downObjectMeta = cc.getObject(getObjectRequest, downFile);
+        cc.shutdown();
+        String etag = downObjectMeta.getETag();
+        return etag;
+    }
+
+    /**
+     * 删除文件
+     * @param bucketName
+     * @param key
+     */
+    public static void deleteFile(String bucketName, String key) {
+        COSClient cc = getCosClient();
+        try {
+            cc.deleteObject(bucketName, key);
+        } catch (CosClientException e) {
+            e.printStackTrace();
+        } finally {
+            cc.shutdown();
+        }
+
+    }
+
+    /**
+     * 创建桶
+     * @param bucketName
+     * @return
+     * @throws CosClientException
+     * @throws CosServiceException
+     */
+    public static Bucket createBucket(String bucketName) throws CosClientException, CosServiceException {
+        COSClient cc = getCosClient();
+        Bucket bucket = null;
+        try {
+            bucket = cc.createBucket(bucketName);
+        } catch (CosClientException e) {
+            e.printStackTrace();
+        } finally {
+        }
+        return bucket;
+    };
+
+    /**
+     * 删除桶
+     * @param bucketName
+     * @throws CosClientException
+     * @throws CosServiceException
+     */
+    public void deleteBucket(String bucketName){
+        COSClient cc = getCosClient();
+        try {
+            cc.deleteBucket(bucketName);
+        } catch (CosClientException e) {
+            e.printStackTrace();
+        } finally {
+        }
+    };
+
+    /**
+     * 判断桶是否存在
+     * @param bucketName
+     * @return
+     */
+    public static boolean doesBucketExist(String bucketName){
+        COSClient cc = getCosClient();
+        return cc.doesBucketExist(bucketName);
+    }
+
+    /**
+     * 查看桶文件
+     * @param bucketName
+     * @return
+     * @throws CosClientException
+     * @throws CosServiceException
+     */
+    public static ObjectListing listObjects(String bucketName) throws CosClientException, CosServiceException {
+        COSClient cc = getCosClient();
+
+        // 获取 bucket 下成员(设置 delimiter)
+        ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
+        listObjectsRequest.setBucketName(bucketName);
+        // 设置 list 的 prefix, 表示 list 出来的文件 key 都是以这个 prefix 开始
+        listObjectsRequest.setPrefix("");
+        // 设置 delimiter 为/, 即获取的是直接成员,不包含目录下的递归子成员
+        listObjectsRequest.setDelimiter("/");
+        // 设置 marker, (marker 由上一次 list 获取到, 或者第一次 list marker 为空)
+        listObjectsRequest.setMarker("");
+        // 设置最多 list 100 个成员,(如果不设置, 默认为 1000 个,最大允许一次 list 1000 个 key)
+        listObjectsRequest.setMaxKeys(100);
+
+        ObjectListing objectListing = cc.listObjects(listObjectsRequest);
+        // 获取下次 list 的 marker
+        String nextMarker = objectListing.getNextMarker();
+        // 判断是否已经 list 完, 如果 list 结束, 则 isTruncated 为 false, 否则为 true
+        boolean isTruncated = objectListing.isTruncated();
+        List<COSObjectSummary> objectSummaries = objectListing.getObjectSummaries();
+        for (COSObjectSummary cosObjectSummary : objectSummaries) {
+            // get file path
+            String key = cosObjectSummary.getKey();
+            // get file length
+            long fileSize = cosObjectSummary.getSize();
+            // get file etag
+            String eTag = cosObjectSummary.getETag();
+            // get last modify time
+            Date lastModified = cosObjectSummary.getLastModified();
+            // get file save type
+            String StorageClassStr = cosObjectSummary.getStorageClass();
+        }
+        return objectListing;
+    }
+
+    /**
+     *查询一个 Bucket 所在的 Region。
+     * @param bucketName
+     * @return
+     */
+    public static String getBucketLocation(String bucketName){
+        COSClient cosClient = getCosClient();
+        // bucket 的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式
+        return cosClient.getBucketLocation(bucketName);
+    }
+
+    public static ResFileDTO uploadMultipartFile(MultipartFile file,String fileSavePath){
+        String fileName = file.getOriginalFilename();
+        InputStream inputStream;
+        ResFileDTO o = new ResFileDTO();
+        String fileType ;
+        long fileSize = file.getSize();
+        try {
+            inputStream = file.getInputStream();
+            FileType type = FileTypeJudge.getType(inputStream);
+
+            if(type == null || "null".equals(type.toString()) ||
+                    "XLS_DOC".equals(type.toString())|| "XLSX_DOCX".equals(type.toString()) ||
+                    "WPSUSER".equals(type.toString())|| "WPS".equals(type.toString())){
+                fileType = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
+            }else{
+                fileType = type.toString().toLowerCase();
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            //用户上传的文件类型为空,并且通过二进制流获取不到文件类型,因为二进制流只列举了常用的
+            fileType = "";
+        }
+
+        try {
+            o = uploadDetailInputStream(file.getInputStream(),fileName,fileType,fileSize,fileSavePath);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return o;
+    }
+
+
+    public static ResFileDTO uploadDetailInputStream (InputStream in, String fileName , String fileType, long fileSize,String fileSavePath) {
+        String uuidFileName = UUID.randomUUID().toString()+fileName.substring(fileName.lastIndexOf("."));
+        String fileUrl = URL_PREFIX+fileSavePath+uuidFileName;
+        String md5key = uploadFileByInputStream(in, fileSavePath, uuidFileName);
+        ResFileDTO o = new ResFileDTO();
+        if(md5key != null){
+            o.setFileType(fileType);
+            o.setFileName(fileName);
+            o.setCFileName(uuidFileName);
+            o.setFileUrl(fileUrl);
+            o.setFileSize(fileSize);
+            o.setMd5key(md5key);
+        }
+        return o;
+    }
+
+    public static String uploadFileByInputStream(InputStream fileStream, String fileSavePath, String fileName){
+        ObjectMetadata metadata = new ObjectMetadata();
+        PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKETNAME, fileSavePath+fileName, fileStream,metadata);
+        // 设置存储类型, 默认是标准(Standard), 低频(standard_ia),一般为标准的
+        putObjectRequest.setStorageClass(StorageClass.Standard);
+        COSClient cc = getCosClient();
+        try {
+            PutObjectResult putObjectResult = cc.putObject(putObjectRequest);
+            String etag = putObjectResult.getETag();
+            return etag;
+        } catch (CosServiceException e) {
+            e.printStackTrace();
+        } catch (CosClientException e) {
+            e.printStackTrace();
+        }finally {
+            // 关闭客户端
+            cc.shutdown();
+        }
+        return null;
+    }
+
+
+    public static void main(String[] args) {
+        String filepath = "D:\\1234.mp4";
+        String fileSavePath = "script-lib/wps/";
+        String fileName = UUID.randomUUID().toString()+filepath.substring(filepath.lastIndexOf("."));
+        String filePath = uploadFile(filepath, fileSavePath, fileName);
+        System.out.println(filePath);
+//          downLoadFile(BUCKETNAME , KEY);
+        // deleteFile(BUCKETNAME , KEY01);
+//        createBucket("sunjunxian01-1251782781");
+        //deleteBucket();
+//        doesBucketExist("sunjunxian01-1251782781");
+//        System.out.println(listObjects(BUCKETNAME));
+        //System.out.println("BUCKETNAME的位置:" + getBucketLocation(BUCKETNAME));
+    }
+}

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/wps/util/upload/ResFileDTO.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.wps.util.upload;
+package cn.com.ctop.common.module.vo;
 
 
 import lombok.Data;
 import lombok.Data;