From c41f76a2aa3e9568a8b1274c3500f79b1eb563b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E8=B6=85?= <1162714483@qq.com> Date: Thu, 1 Apr 2021 23:18:16 +0800 Subject: [PATCH] =?UTF-8?q?oss=E4=B8=8A=E4=BC=A0url=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../upload/product/AliyunOSSUploader.java | 42 +++---------------- .../com/qiwenshare/file/dto/MoveFileDTO.java | 6 --- 2 files changed, 5 insertions(+), 43 deletions(-) diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/AliyunOSSUploader.java b/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/AliyunOSSUploader.java index ca2cf2f..ae35397 100644 --- a/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/AliyunOSSUploader.java +++ b/file-common/src/main/java/com/qiwenshare/common/operation/upload/product/AliyunOSSUploader.java @@ -11,7 +11,6 @@ import com.qiwenshare.common.operation.upload.Uploader; import com.qiwenshare.common.util.FileUtil; import com.qiwenshare.common.util.PathUtil; import lombok.Data; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -23,7 +22,6 @@ import org.springframework.web.multipart.support.StandardMultipartHttpServletReq import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.File; -import java.io.InputStream; import java.util.*; @Component public class AliyunOSSUploader extends Uploader { @@ -31,15 +29,12 @@ public class AliyunOSSUploader extends Uploader { @Resource QiwenFileConfig qiwenFileConfig; - // partETags是PartETag的集合。PartETag由分片的ETag和分片号组成。 public static Map> partETagsMap = new HashMap>(); public static Map uploadPartRequestMap = new HashMap<>(); public static Map ossMap = new HashMap<>(); - public static Map timeStampNameMap = new HashMap<>(); - @Override public List upload(HttpServletRequest httpServletRequest, UploadFile uploadFile) { logger.info("开始上传upload"); @@ -51,25 +46,19 @@ public class AliyunOSSUploader extends Uploader { if (!isMultipart) { throw new UploadGeneralException("未包含文件上传域"); } - DiskFileItemFactory dff = new DiskFileItemFactory();//1、创建工厂 - String savePath = getSaveFilePath(); - dff.setRepository(new File(savePath)); - ServletFileUpload sfu = new ServletFileUpload(dff); - sfu.setSizeMax(this.maxSize * 1024L); - sfu.setHeaderEncoding("utf-8");//3、解决文件名的中文乱码 Iterator iter = request.getFileNames(); while (iter.hasNext()) { - saveUploadFileList = doUpload(request, savePath, iter, uploadFile); + saveUploadFileList = doUpload(request, iter, uploadFile); } - logger.info("结束上传"); return saveUploadFileList; } - private List doUpload(StandardMultipartHttpServletRequest standardMultipartHttpServletRequest, String savePath, Iterator iter, UploadFile uploadFile) { + private List doUpload(StandardMultipartHttpServletRequest standardMultipartHttpServletRequest, Iterator iter, UploadFile uploadFile) { + String savePath = getSaveFilePath(); OSS ossClient = getClient(uploadFile); List saveUploadFileList = new ArrayList<>(); @@ -79,9 +68,7 @@ public class AliyunOSSUploader extends Uploader { String timeStampName = getTimeStampName(); String originalName = multipartfile.getOriginalFilename(); - String fileName = getFileName(originalName); - String fileType = FileUtil.getFileExtendName(originalName); uploadFile.setFileName(fileName); uploadFile.setFileType(fileType); @@ -111,16 +98,10 @@ public class AliyunOSSUploader extends Uploader { uploadPartRequest.setBucketName(uploadFileInfo.getBucketName()); uploadPartRequest.setKey(uploadFileInfo.getKey()); uploadPartRequest.setUploadId(uploadFileInfo.getUploadId()); - InputStream instream = multipartfile.getInputStream(); - logger.info("流大小" + instream.available()); - long position = (uploadFile.getChunkNumber() - 1) * uploadFile.getCurrentChunkSize(); - logger.info("偏移量:" + position); -// instream.skip(position); - uploadPartRequest.setInputStream(instream); + uploadPartRequest.setInputStream(multipartfile.getInputStream()); uploadPartRequest.setPartSize(uploadFile.getCurrentChunkSize()); uploadPartRequest.setPartNumber(uploadFile.getChunkNumber()); logger.info(JSON.toJSONString(uploadPartRequest)); -// uploadPartRequest.setUseChunkEncoding(true); UploadPartResult uploadPartResult = ossClient.uploadPart(uploadPartRequest); synchronized (AliyunOSSUploader.class) { @@ -139,7 +120,7 @@ public class AliyunOSSUploader extends Uploader { logger.info("分片上传完成"); completeMultipartUpload(uploadFile); - uploadFile.setUrl(ossFilePath); + uploadFile.setUrl("/" + uploadPartRequestMap.get(uploadFile.getIdentifier()).getKey()); uploadFile.setSuccess(1); uploadFile.setMessage("上传成功"); } else { @@ -220,19 +201,6 @@ public class AliyunOSSUploader extends Uploader { getClient(uploadFile).abortMultipartUpload(abortMultipartUploadRequest); } - - protected synchronized String getTimeStampName(UploadFile uploadFile){ - String timeStampName; - - if (StringUtils.isEmpty(timeStampNameMap.get(uploadFile.getIdentifier()))) { - timeStampName = super.getTimeStampName(); - timeStampNameMap.put(uploadFile.getIdentifier(), timeStampName); - } else { - timeStampName = timeStampNameMap.get(uploadFile.getIdentifier()); - } - return timeStampName; - } - private synchronized OSS getClient(UploadFile uploadFile) { OSS ossClient = null; if (ossMap.get(uploadFile.getIdentifier()) == null) { diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/MoveFileDTO.java b/file-web/src/main/java/com/qiwenshare/file/dto/MoveFileDTO.java index 89a6459..6ed6fdc 100644 --- a/file-web/src/main/java/com/qiwenshare/file/dto/MoveFileDTO.java +++ b/file-web/src/main/java/com/qiwenshare/file/dto/MoveFileDTO.java @@ -7,15 +7,9 @@ import lombok.Data; @Schema(name = "移动文件DTO",required = true) public class MoveFileDTO { - /** - * 文件路径 - */ @Schema(description = "文件路径") private String filePath; - /** - * 文件名 - */ @Schema(description = "文件名") private String fileName;