|
|
|
@@ -13,6 +13,7 @@ import com.amazonaws.services.s3.model.ObjectMetadata; |
|
|
|
import com.amazonaws.services.s3.model.PutObjectRequest; |
|
|
|
import com.iformall.common.ResultData; |
|
|
|
import com.iformall.config.AwsProperty; |
|
|
|
import com.iformall.utils.AwsClient; |
|
|
|
import io.swagger.annotations.Api; |
|
|
|
import io.swagger.annotations.ApiOperation; |
|
|
|
import org.slf4j.Logger; |
|
|
|
@@ -104,49 +105,10 @@ public class UploadController extends BaseController { |
|
|
|
} |
|
|
|
*/ |
|
|
|
|
|
|
|
/** |
|
|
|
* 上传文件 |
|
|
|
* |
|
|
|
* @param multiReq |
|
|
|
* @return |
|
|
|
* @throws Exception |
|
|
|
*/ |
|
|
|
@PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") |
|
|
|
@ApiOperation("上传文件") |
|
|
|
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { |
|
|
|
logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); |
|
|
|
private ResultData awsUpload(MultipartFile multiReq, ObjectMetadata metadata, String fileName) { |
|
|
|
ResultData data = new ResultData(); |
|
|
|
|
|
|
|
|
|
|
|
ObjectMetadata metadata = new ObjectMetadata(); |
|
|
|
metadata.setContentType(multiReq.getContentType()); |
|
|
|
metadata.setContentLength(multiReq.getSize()); |
|
|
|
|
|
|
|
FileOutputStream fos = null; |
|
|
|
BufferedInputStream fs = null; |
|
|
|
try { |
|
|
|
AmazonS3 s3 = AmazonS3ClientBuilder.standard() |
|
|
|
.withRegion(awsProperty.getClientRegion()) |
|
|
|
.withCredentials(new AWSCredentialsProvider() { |
|
|
|
@Override |
|
|
|
public AWSCredentials getCredentials() { |
|
|
|
return new BasicAWSCredentials(awsProperty.getAccess(), awsProperty.getSecret()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void refresh() { |
|
|
|
|
|
|
|
} |
|
|
|
}) |
|
|
|
.build(); |
|
|
|
String fileName = UUID.randomUUID().toString(); |
|
|
|
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); |
|
|
|
if (dot >= 0) { |
|
|
|
fileName = getTenantId() + "/" + fileName + multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); |
|
|
|
} else { |
|
|
|
fileName = getTenantId() + "/" + fileName; |
|
|
|
} |
|
|
|
|
|
|
|
AmazonS3 s3 = AwsClient.getInstance(); |
|
|
|
|
|
|
|
s3.putObject( |
|
|
|
new PutObjectRequest(awsProperty.getBucketName(), fileName, multiReq.getInputStream(), metadata) |
|
|
|
@@ -158,7 +120,6 @@ public class UploadController extends BaseController { |
|
|
|
Map<String, String> map = new HashMap<>(); |
|
|
|
map.put("url", url.toString()); |
|
|
|
data.data = map; |
|
|
|
return data; |
|
|
|
} catch (AmazonServiceException ase) { |
|
|
|
data.code = ResultData.ERROR; |
|
|
|
logger.warn("Caught an AmazonServiceException, which " + |
|
|
|
@@ -187,5 +148,66 @@ public class UploadController extends BaseController { |
|
|
|
return data; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 上传文件 |
|
|
|
* |
|
|
|
* @param multiReq |
|
|
|
* @return |
|
|
|
* @throws Exception |
|
|
|
*/ |
|
|
|
@PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") |
|
|
|
@ApiOperation("上传文件") |
|
|
|
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { |
|
|
|
logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); |
|
|
|
|
|
|
|
ObjectMetadata metadata = new ObjectMetadata(); |
|
|
|
metadata.setContentType(multiReq.getContentType()); |
|
|
|
metadata.setContentLength(multiReq.getSize()); |
|
|
|
|
|
|
|
FileOutputStream fos = null; |
|
|
|
BufferedInputStream fs = null; |
|
|
|
|
|
|
|
String fileName = UUID.randomUUID().toString(); |
|
|
|
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); |
|
|
|
if (dot >= 0) { |
|
|
|
fileName = getTenantId() + "/" + fileName + multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); |
|
|
|
} else { |
|
|
|
fileName = getTenantId() + "/" + fileName; |
|
|
|
} |
|
|
|
|
|
|
|
ResultData data = awsUpload(multiReq, metadata, fileName); |
|
|
|
return data; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* C端上传图片文件 |
|
|
|
* |
|
|
|
* @param multiReq |
|
|
|
* @return |
|
|
|
* @throws Exception |
|
|
|
*/ |
|
|
|
@PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") |
|
|
|
@ApiOperation("C端上传图片文件") |
|
|
|
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) { |
|
|
|
logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); |
|
|
|
|
|
|
|
ObjectMetadata metadata = new ObjectMetadata(); |
|
|
|
metadata.setContentType(multiReq.getContentType()); |
|
|
|
metadata.setContentLength(multiReq.getSize()); |
|
|
|
|
|
|
|
FileOutputStream fos = null; |
|
|
|
BufferedInputStream fs = null; |
|
|
|
|
|
|
|
String fileName = ""; |
|
|
|
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); |
|
|
|
if (dot >= 0) { |
|
|
|
fileName = "cimg/" + multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); |
|
|
|
} else { |
|
|
|
fileName = "cimg/" + UUID.randomUUID().toString(); |
|
|
|
} |
|
|
|
|
|
|
|
ResultData data = awsUpload(multiReq, metadata, fileName); |
|
|
|
return data; |
|
|
|
} |
|
|
|
|
|
|
|
} |