Browse Source

对外接口-文件上传

dev_shibei_match
sunyuchao 5 years ago
parent
commit
9e88e922b7
  1. 4
      epmet-module/epmet-oss/epmet-oss-server/pom.xml
  2. 7
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AbstractCloudStorageService.java
  3. 54
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java
  4. 6
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/FastDFSCloudStorageService.java
  5. 5
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/LocalCloudStorageService.java
  6. 5
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/QcloudCloudStorageService.java
  7. 5
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/QiniuCloudStorageService.java
  8. 19
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java
  9. 2
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java
  10. 32
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java

4
epmet-module/epmet-oss/epmet-oss-server/pom.xml

@ -92,6 +92,10 @@
<artifactId>fastdfs-client</artifactId> <artifactId>fastdfs-client</artifactId>
<version>${fastdfs.version}</version> <version>${fastdfs.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

7
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AbstractCloudStorageService.java

@ -11,6 +11,7 @@ package com.epmet.cloud;
import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.DateUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.Date; import java.util.Date;
import java.util.UUID; import java.util.UUID;
@ -75,4 +76,10 @@ public abstract class AbstractCloudStorageService {
*/ */
public abstract String uploadSuffix(InputStream inputStream, String suffix); public abstract String uploadSuffix(InputStream inputStream, String suffix);
/**
* 文件下载
* sun
*/
public abstract void down() throws IOException;
} }

54
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/AliyunCloudStorageService.java

@ -9,10 +9,13 @@
package com.epmet.cloud; package com.epmet.cloud;
import com.aliyun.oss.OSSClient; import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.DownloadFileRequest;
import com.aliyun.oss.model.DownloadFileResult;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.exception.ModuleErrorCode; import com.epmet.exception.ModuleErrorCode;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
/** /**
@ -54,4 +57,55 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService {
public String uploadSuffix(InputStream inputStream, String suffix) { public String uploadSuffix(InputStream inputStream, String suffix) {
return upload(inputStream, getPath(config.getAliyunPrefix(), suffix)); return upload(inputStream, getPath(config.getAliyunPrefix(), suffix));
} }
@Override
public void down() throws IOException {
OSSClient client = new OSSClient(config.getAliyunEndPoint(), config.getAliyunAccessKeyId(),
config.getAliyunAccessKeySecret());
try {
/*
//方式一
File file = new File("C:/Users/Administrator/Desktop/dd/df.jpg");
client.getObject(new GetObjectRequest(config.getAliyunBucketName(), "epmet/test/20201103/198f3c11490a44eb964c5c8e9989a507.jpg"), file);*/
/*
//方式二
OSSObject oo = client.getObject(config.getAliyunBucketName(), path);
InputStream is = oo.getObjectContent();
OutputStream os = null;
File file = new File("C:/Users/Administrator/Desktop/dd/aa.jpg");
try {
os = new FileOutputStream(file);
int len = 0;
byte[] buffer = new byte[8192];
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
} finally {
os.close();
is.close();
}*/
//方式三
DownloadFileRequest downloadFileRequest = new DownloadFileRequest(config.getAliyunBucketName(), "epmet/test/20201103/198f3c11490a44eb964c5c8e9989a507.jpg");
downloadFileRequest.setDownloadFile("C:/Users/Administrator/Desktop/dd/4.jpg");// 本地下载文件名称
downloadFileRequest.setPartSize(1 * 1024 * 1024);// 分片大小,取值范围为1B~5GB。
downloadFileRequest.setTaskNum(10);//10个任务并发下载,默认值为1
downloadFileRequest.setEnableCheckpoint(true);// 启动断点续传
// 下载文件
DownloadFileResult downloadRes = client.downloadFile(downloadFileRequest);
// 下载成功时,会返回文件元信息。
downloadRes.getObjectMetadata();
// 关闭OSSClient。
client.shutdown();
} catch (Exception e){
throw new RenException(ModuleErrorCode.OSS_UPLOAD_FILE_ERROR, e, "");
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
} }

6
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/FastDFSCloudStorageService.java

@ -15,6 +15,7 @@ import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.exception.ModuleErrorCode; import com.epmet.exception.ModuleErrorCode;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
/** /**
@ -59,4 +60,9 @@ public class FastDFSCloudStorageService extends AbstractCloudStorageService {
public String uploadSuffix(InputStream inputStream, String suffix) { public String uploadSuffix(InputStream inputStream, String suffix) {
return upload(inputStream, suffix); return upload(inputStream, suffix);
} }
@Override
public void down() throws IOException {
}
} }

5
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/LocalCloudStorageService.java

@ -53,4 +53,9 @@ public class LocalCloudStorageService extends AbstractCloudStorageService {
public String uploadSuffix(InputStream inputStream, String suffix) { public String uploadSuffix(InputStream inputStream, String suffix) {
return upload(inputStream, getPath(config.getLocalPrefix(), suffix)); return upload(inputStream, getPath(config.getLocalPrefix(), suffix));
} }
@Override
public void down() throws IOException {
}
} }

5
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/QcloudCloudStorageService.java

@ -83,4 +83,9 @@ public class QcloudCloudStorageService extends AbstractCloudStorageService {
public String uploadSuffix(InputStream inputStream, String suffix) { public String uploadSuffix(InputStream inputStream, String suffix) {
return upload(inputStream, getPath(config.getQcloudPrefix(), suffix)); return upload(inputStream, getPath(config.getQcloudPrefix(), suffix));
} }
@Override
public void down() throws IOException {
}
} }

5
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/QiniuCloudStorageService.java

@ -77,4 +77,9 @@ public class QiniuCloudStorageService extends AbstractCloudStorageService {
public String uploadSuffix(InputStream inputStream, String suffix) { public String uploadSuffix(InputStream inputStream, String suffix) {
return upload(inputStream, getPath(config.getQiniuPrefix(), suffix)); return upload(inputStream, getPath(config.getQiniuPrefix(), suffix));
} }
@Override
public void down() throws IOException {
}
} }

19
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java

@ -31,12 +31,17 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.apache.http.entity.ContentType;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map; import java.util.Map;
@ -218,4 +223,18 @@ public class OssController {
return ossService.uploadImg(file); return ossService.uploadImg(file);
} }
/**
* @param byteFile fileName
* @Description 外挂-文件上传
* @Author sun
**/
@PostMapping("ext/upload")
public Result<UploadImgResultDTO> extUpload(@RequestParam("byteFile") byte[] byteFile, @RequestParam("fileName") String fileName) throws IOException {
//public Result<UploadImgResultDTO> extUpload(@RequestParam("file") MultipartFile file, @RequestParam("fileName") String fileName) throws IOException {
//byte[] byteFile = file.getBytes();
InputStream inputStream = new ByteArrayInputStream(byteFile);
MultipartFile filse = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
return ossService.extUpload(filse,fileName);
}
} }

2
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java

@ -29,4 +29,6 @@ public interface OssService extends BaseService<OssEntity> {
int insertOssEntity(OssEntity ossEntity); int insertOssEntity(OssEntity ossEntity);
Result<UploadImgResultDTO> uploadImg(MultipartFile file); Result<UploadImgResultDTO> uploadImg(MultipartFile file);
Result<UploadImgResultDTO> extUpload(MultipartFile file, String fileName);
} }

32
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java

@ -72,4 +72,36 @@ public class OssServiceImpl extends BaseServiceImpl<OssDao, OssEntity> implement
dto.setUrl(url); dto.setUrl(url);
return new Result<UploadImgResultDTO>().ok(dto); return new Result<UploadImgResultDTO>().ok(dto);
} }
@Override
public Result<UploadImgResultDTO> extUpload(MultipartFile file, String fileName) {
try {
OssFactory.build().down();
} catch (IOException e) {
e.printStackTrace();
}
if (file.isEmpty()) {
return new Result<UploadImgResultDTO>().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
}
//上传文件
String extension = FilenameUtils.getExtension(fileName);
String url = null;
try {
url = OssFactory.build().uploadSuffix(file.getBytes(), extension);
} catch (IOException e) {
e.printStackTrace();
logger.error("图片上传异常");
throw new RenException("图片上传异常");
}
//保存文件信息
OssEntity ossEntity = new OssEntity();
ossEntity.setUrl(url);
baseDao.insert(ossEntity);
//文件信息
UploadImgResultDTO dto = new UploadImgResultDTO();
dto.setUrl(url);
return new Result<UploadImgResultDTO>().ok(dto);
}
} }

Loading…
Cancel
Save