Browse Source

oss新增上传方法

dev
yujintao 6 years ago
parent
commit
d3fa3756ae
  1. 65
      esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java
  2. 17
      esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/OssService.java
  3. 23
      esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/impl/OssServiceImpl.java

65
esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java

@ -1,14 +1,15 @@
/** /**
* Copyright (c) 2018 人人开源 All rights reserved. * Copyright (c) 2018 人人开源 All rights reserved.
* * <p>
* https://www.renren.io * https://www.renren.io
* * <p>
* 版权所有侵权必究 * 版权所有侵权必究
*/ */
package com.elink.esua.epdc.controller; package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.annotation.LogOperation; import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
@ -16,28 +17,17 @@ import com.elink.esua.epdc.commons.tools.validator.group.AliyunGroup;
import com.elink.esua.epdc.commons.tools.validator.group.QcloudGroup; import com.elink.esua.epdc.commons.tools.validator.group.QcloudGroup;
import com.elink.esua.epdc.commons.tools.validator.group.QiniuGroup; import com.elink.esua.epdc.commons.tools.validator.group.QiniuGroup;
import com.elink.esua.epdc.dto.UploadFormDTO; import com.elink.esua.epdc.dto.UploadFormDTO;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.entity.OssEntity; import com.elink.esua.epdc.entity.OssEntity;
import com.elink.esua.epdc.exception.ModuleErrorCode; import com.elink.esua.epdc.exception.ModuleErrorCode;
import com.elink.esua.epdc.remote.ParamsRemoteService; import com.elink.esua.epdc.remote.ParamsRemoteService;
import com.elink.esua.epdc.service.OssService; import com.elink.esua.epdc.service.OssService;
import com.elink.esua.epdc.utils.ModuleConstant; import com.elink.esua.epdc.utils.ModuleConstant;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.cloud.CloudStorageConfig; import com.elink.esua.epdc.cloud.CloudStorageConfig;
import com.elink.esua.epdc.cloud.OssFactory; import com.elink.esua.epdc.cloud.OssFactory;
import com.elink.esua.epdc.commons.tools.validator.group.AliyunGroup;
import com.elink.esua.epdc.commons.tools.validator.group.QcloudGroup;
import com.elink.esua.epdc.commons.tools.validator.group.QiniuGroup;
import com.elink.esua.epdc.dto.UploadDTO; import com.elink.esua.epdc.dto.UploadDTO;
import com.elink.esua.epdc.entity.OssEntity;
import com.elink.esua.epdc.enums.OssTypeEnum; import com.elink.esua.epdc.enums.OssTypeEnum;
import com.elink.esua.epdc.exception.ModuleErrorCode;
import com.elink.esua.epdc.service.OssService;
import com.elink.esua.epdc.utils.ModuleConstant;
import com.elink.esua.epdc.remote.ParamsRemoteService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
@ -49,7 +39,6 @@ import springfox.documentation.annotations.ApiIgnore;
import sun.misc.BASE64Decoder; import sun.misc.BASE64Decoder;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.Map; import java.util.Map;
/** /**
@ -59,10 +48,12 @@ import java.util.Map;
*/ */
@RestController @RestController
@RequestMapping("file") @RequestMapping("file")
@Api(tags="文件上传") @Api(tags = "文件上传")
public class OssController { public class OssController {
@Autowired @Autowired
private OssService ossService; private OssService ossService;
@Autowired @Autowired
private ParamsRemoteService paramsRemoteService; private ParamsRemoteService paramsRemoteService;
@ -70,7 +61,7 @@ public class OssController {
@GetMapping("page") @GetMapping("page")
@ApiOperation(value = "分页") @ApiOperation(value = "分页")
public Result<PageData<OssEntity>> page(@ApiIgnore @RequestParam Map<String, Object> params){ public Result<PageData<OssEntity>> page(@ApiIgnore @RequestParam Map<String, Object> params) {
PageData<OssEntity> page = ossService.page(params); PageData<OssEntity> page = ossService.page(params);
return new Result<PageData<OssEntity>>().ok(page); return new Result<PageData<OssEntity>>().ok(page);
@ -78,7 +69,7 @@ public class OssController {
@GetMapping("info") @GetMapping("info")
@ApiOperation(value = "云存储配置信息") @ApiOperation(value = "云存储配置信息")
public Result<CloudStorageConfig> info(){ public Result<CloudStorageConfig> info() {
CloudStorageConfig config = paramsRemoteService.getValueObject(KEY, CloudStorageConfig.class); CloudStorageConfig config = paramsRemoteService.getValueObject(KEY, CloudStorageConfig.class);
return new Result<CloudStorageConfig>().ok(config); return new Result<CloudStorageConfig>().ok(config);
@ -87,17 +78,17 @@ public class OssController {
@PostMapping @PostMapping
@ApiOperation(value = "保存云存储配置信息") @ApiOperation(value = "保存云存储配置信息")
@LogOperation("保存云存储配置信息") @LogOperation("保存云存储配置信息")
public Result saveConfig(@RequestBody CloudStorageConfig config){ public Result saveConfig(@RequestBody CloudStorageConfig config) {
//校验类型 //校验类型
ValidatorUtils.validateEntity(config); ValidatorUtils.validateEntity(config);
if(config.getType() == OssTypeEnum.QINIU.value()){ if (config.getType() == OssTypeEnum.QINIU.value()) {
//校验七牛数据 //校验七牛数据
ValidatorUtils.validateEntity(config, QiniuGroup.class); ValidatorUtils.validateEntity(config, QiniuGroup.class);
}else if(config.getType() == OssTypeEnum.ALIYUN.value()){ } else if (config.getType() == OssTypeEnum.ALIYUN.value()) {
//校验阿里云数据 //校验阿里云数据
ValidatorUtils.validateEntity(config, AliyunGroup.class); ValidatorUtils.validateEntity(config, AliyunGroup.class);
}else if(config.getType() == OssTypeEnum.QCLOUD.value()){ } else if (config.getType() == OssTypeEnum.QCLOUD.value()) {
//校验腾讯云数据 //校验腾讯云数据
ValidatorUtils.validateEntity(config, QcloudGroup.class); ValidatorUtils.validateEntity(config, QcloudGroup.class);
} }
@ -118,24 +109,13 @@ public class OssController {
String extension = FilenameUtils.getExtension(file.getOriginalFilename()); String extension = FilenameUtils.getExtension(file.getOriginalFilename());
String url = OssFactory.build().uploadSuffix(file.getBytes(), extension); String url = OssFactory.build().uploadSuffix(file.getBytes(), extension);
//保存文件信息 return ossService.afterUpload(url, file.getSize());
OssEntity ossEntity = new OssEntity();
ossEntity.setUrl(url);
ossEntity.setCreateDate(new Date());
ossService.insert(ossEntity);
//文件信息
UploadDTO dto = new UploadDTO();
dto.setUrl(url);
dto.setSize(file.getSize());
return new Result<UploadDTO>().ok(dto);
} }
@DeleteMapping @DeleteMapping
@ApiOperation(value = "删除") @ApiOperation(value = "删除")
@LogOperation("删除") @LogOperation("删除")
public Result delete(@RequestBody Long[] ids){ public Result delete(@RequestBody Long[] ids) {
ossService.deleteBatchIds(Arrays.asList(ids)); ossService.deleteBatchIds(Arrays.asList(ids));
return new Result(); return new Result();
@ -152,9 +132,20 @@ public class OssController {
String suffix = suffixTmp.substring(11, suffixTmp.indexOf(";")); String suffix = suffixTmp.substring(11, suffixTmp.indexOf(";"));
byte[] imgBytes = new BASE64Decoder().decodeBuffer(base64ImgArr[1]); byte[] imgBytes = new BASE64Decoder().decodeBuffer(base64ImgArr[1]);
String url = OssFactory.build().uploadSuffix(imgBytes, suffix); String url = OssFactory.build().uploadSuffix(imgBytes, suffix);
System.out.println("base64:"+formDTO.getBase64String());
System.out.println("url:"+url);
return new Result<String>().ok(url); return new Result<String>().ok(url);
} }
@PostMapping("uploadFile")
public Result<String> uploadFile(@RequestBody UploadToOssDTO dto) {
byte[] fileByte = dto.getFileByte();
if (null == fileByte || fileByte.length == NumConstant.ZERO) {
return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
}
//上传文件
String extension = FilenameUtils.getExtension(dto.getFileName());
String url = OssFactory.build().uploadSuffix(fileByte, extension);
return new Result().ok(url);
}
} }

17
esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/OssService.java

@ -1,8 +1,8 @@
/** /**
* Copyright (c) 2018 人人开源 All rights reserved. * Copyright (c) 2018 人人开源 All rights reserved.
* * <p>
* https://www.renren.io * https://www.renren.io
* * <p>
* 版权所有侵权必究 * 版权所有侵权必究
*/ */
@ -12,6 +12,8 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UploadDTO;
import com.elink.esua.epdc.entity.OssEntity; import com.elink.esua.epdc.entity.OssEntity;
import java.util.Map; import java.util.Map;
@ -24,4 +26,15 @@ import java.util.Map;
public interface OssService extends BaseService<OssEntity> { public interface OssService extends BaseService<OssEntity> {
PageData<OssEntity> page(Map<String, Object> params); PageData<OssEntity> page(Map<String, Object> params);
/**
* 文件上传后操作
*
* @param url 文件地址
* @param size 文件大小
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UploadDTO>
* @author work@yujt.net.cn
* @date 2019/9/19 10:09
*/
Result<UploadDTO> afterUpload(String url, long size);
} }

23
esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/service/impl/OssServiceImpl.java

@ -1,8 +1,8 @@
/** /**
* Copyright (c) 2018 人人开源 All rights reserved. * Copyright (c) 2018 人人开源 All rights reserved.
* * <p>
* https://www.renren.io * https://www.renren.io
* * <p>
* 版权所有侵权必究 * 版权所有侵权必究
*/ */
@ -16,11 +16,14 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.OssDao; import com.elink.esua.epdc.dao.OssDao;
import com.elink.esua.epdc.dto.UploadDTO;
import com.elink.esua.epdc.entity.OssEntity; import com.elink.esua.epdc.entity.OssEntity;
import com.elink.esua.epdc.service.OssService; import com.elink.esua.epdc.service.OssService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Map; import java.util.Map;
@Service @Service
@ -34,4 +37,20 @@ public class OssServiceImpl extends BaseServiceImpl<OssDao, OssEntity> implement
); );
return getPageData(page, OssEntity.class); return getPageData(page, OssEntity.class);
} }
@Override
public Result<UploadDTO> afterUpload(String url, long size) {
//保存文件信息
OssEntity ossEntity = new OssEntity();
ossEntity.setUrl(url);
ossEntity.setCreateDate(new Date());
this.insert(ossEntity);
//文件信息
UploadDTO dto = new UploadDTO();
dto.setUrl(url);
dto.setSize(size);
return new Result<UploadDTO>().ok(dto);
}
} }

Loading…
Cancel
Save