|
@@ -305,144 +305,14 @@ public class UploadToFdkkOssUtil {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- //上传的数据是文件夹,参数是文件夹路径,key是上传后的文件名
|
|
|
|
- public void uploadMulFiles(Map<String, String> filepaths) {
|
|
|
|
- if (filepaths == null) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- Long start = System.currentTimeMillis();
|
|
|
|
- log.info("开始批量上传文件:");
|
|
|
|
- if (filepaths.size() > 50) {
|
|
|
|
- filepaths.entrySet().parallelStream().forEach(entry->{
|
|
|
|
- upload2(entry.getKey(), entry.getValue());
|
|
|
|
- });
|
|
|
|
- } else {
|
|
|
|
- filepaths.entrySet().parallelStream().forEach(entry->{
|
|
|
|
- upload(entry.getKey(), entry.getValue());
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- log.info("批量上传文件结束,用时:{}" ,(System.currentTimeMillis() - start));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public Map<String, String> getUploadS3Url(List<String> urls){
|
|
|
|
- if(urls == null || urls.size() <= 0){
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
- BasicAWSCredentials awsCred = new BasicAWSCredentials(s3key, s3secrey);
|
|
|
|
-
|
|
|
|
- AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
|
|
|
|
- .withCredentials(new AWSStaticCredentialsProvider(awsCred))
|
|
|
|
- .withRegion(Regions.EU_WEST_2)
|
|
|
|
- .build();
|
|
|
|
-
|
|
|
|
- // Set the pre-signed URL to expire after one hour.
|
|
|
|
- java.util.Date expiration = new java.util.Date();
|
|
|
|
- long expTimeMillis = expiration.getTime();
|
|
|
|
- expTimeMillis += 1000 * 60 * 60 * 8;
|
|
|
|
- expiration.setTime(expTimeMillis);
|
|
|
|
-
|
|
|
|
- //生成预签名URL
|
|
|
|
- log.info("生成预签名URL");
|
|
|
|
- GeneratePresignedUrlRequest generatePresignedUrlRequest = null;
|
|
|
|
- URL url = null;
|
|
|
|
- Map<String, String> map = new HashMap();
|
|
|
|
- for(String path : urls){
|
|
|
|
-// if(path.contains(".jpg") || path.contains("png")){
|
|
|
|
-// generatePresignedUrlRequest = new GeneratePresignedUrlRequest(s3bucket, path)
|
|
|
|
-// .withMethod(HttpMethod.PUT)
|
|
|
|
-// .withExpiration(expiration)
|
|
|
|
-// .withContentType("image/jpeg");
|
|
|
|
-// }else {
|
|
|
|
- generatePresignedUrlRequest = new GeneratePresignedUrlRequest(s3bucket, path)
|
|
|
|
- .withMethod(HttpMethod.PUT)
|
|
|
|
- .withExpiration(expiration);
|
|
|
|
-// }
|
|
|
|
- url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
|
|
|
|
- map.put(path, url.toString());
|
|
|
|
- }
|
|
|
|
- return map;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public String upload5(String filePath, String key1) {
|
|
|
|
- OSSClient ossClient = new OSSClient(point, key, secrey);
|
|
|
|
- PutObjectResult result = null;
|
|
|
|
- try {
|
|
|
|
- File file = new File(filePath);
|
|
|
|
- if (!file.exists()) {
|
|
|
|
- log.error("要上传的文件不存在:" + filePath);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
- result = ossClient.putObject(bucket, key1, new File(filePath));
|
|
|
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error(e.toString() + filePath);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- log.info(" getETag : " + result.getETag());
|
|
|
|
- log.info("1 : " + result.toString());
|
|
|
|
- log.info("2 : " + result.getRequestId());
|
|
|
|
- log.info("3 : " + result.getClientCRC());
|
|
|
|
- log.info("4 : " + result.getResponse());
|
|
|
|
- log.info("5 : " + result.getServerCRC());
|
|
|
|
- return result.getETag();
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
|
|
//海外亚马逊s3
|
|
//海外亚马逊s3
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
- * s3上传文件流
|
|
|
|
- *
|
|
|
|
- * @param file 文件
|
|
|
|
- * @param updatePath 上传路径[ eg: xxx/xxx ]
|
|
|
|
- */
|
|
|
|
- public String updateS3LoadFile(MultipartFile file, String updatePath) {
|
|
|
|
-
|
|
|
|
- if (isEmpty(file)) {
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 创建s3对象
|
|
|
|
- */
|
|
|
|
- BasicAWSCredentials awsCreds = new BasicAWSCredentials(s3key, s3secrey);
|
|
|
|
- AmazonS3 s3 = AmazonS3ClientBuilder.standard()
|
|
|
|
- .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
|
|
|
|
- .withRegion(Regions.EU_WEST_2)
|
|
|
|
- .build();
|
|
|
|
-
|
|
|
|
- try {
|
|
|
|
- // 创建临时文件,程序运行结束,会自动删除
|
|
|
|
- File localFile = File.createTempFile("temp", null);
|
|
|
|
- // 把文件写入内存中
|
|
|
|
- file.transferTo(localFile);
|
|
|
|
-
|
|
|
|
- // 指定要上传到服务器上的路径
|
|
|
|
- String key = updatePath;
|
|
|
|
-
|
|
|
|
- // 设置文件并设置公读
|
|
|
|
- PutObjectRequest request = new PutObjectRequest(s3bucket, key, localFile);
|
|
|
|
- request.withCannedAcl(CannedAccessControlList.PublicRead);
|
|
|
|
-
|
|
|
|
- // 上传文件
|
|
|
|
- com.amazonaws.services.s3.model.PutObjectResult putObjectResult = s3.putObject(request);
|
|
|
|
- if (StringUtils.isNotEmpty(putObjectResult.getETag())) {
|
|
|
|
- System.out.println("success");
|
|
|
|
- return key;
|
|
|
|
- }
|
|
|
|
- return null;
|
|
|
|
-
|
|
|
|
- } catch (IOException e) {
|
|
|
|
- }
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
* s3上传文件
|
|
* s3上传文件
|
|
* @param filePath
|
|
* @param filePath
|
|
* @param key1
|
|
* @param key1
|
|
@@ -534,34 +404,8 @@ public class UploadToFdkkOssUtil {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 检查文件是否为空
|
|
|
|
- *
|
|
|
|
- * @param imageFile
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- private static boolean isEmpty(MultipartFile imageFile) {
|
|
|
|
- if (imageFile == null || imageFile.getSize() <= 0) {
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
- public List<String> listKeys(String sourcePath){
|
|
|
|
- StorageType storageType = StorageType.get(type);
|
|
|
|
- switch (storageType){
|
|
|
|
- case OSS:
|
|
|
|
- return this.listKeysFromAli(sourcePath);
|
|
|
|
- case AWS:
|
|
|
|
- return this.listKeysFromAws(sourcePath);
|
|
|
|
- case LOCAL:
|
|
|
|
- return this.listKeysFromLocal(sourcePath);
|
|
|
|
- }
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 获得文件列表-阿里云
|
|
* 获得文件列表-阿里云
|
|
* @return
|
|
* @return
|
|
@@ -624,7 +468,7 @@ public class UploadToFdkkOssUtil {
|
|
boolean flag = true;
|
|
boolean flag = true;
|
|
String nextMaker = null;
|
|
String nextMaker = null;
|
|
com.amazonaws.services.s3.model.ListObjectsRequest listObjectsRequest = new com.amazonaws.services.s3.model.ListObjectsRequest();
|
|
com.amazonaws.services.s3.model.ListObjectsRequest listObjectsRequest = new com.amazonaws.services.s3.model.ListObjectsRequest();
|
|
- listObjectsRequest.setBucketName(this.bucket);
|
|
|
|
|
|
+ listObjectsRequest.setBucketName(this.s3bucket);
|
|
listObjectsRequest.setPrefix(sourcePath);
|
|
listObjectsRequest.setPrefix(sourcePath);
|
|
listObjectsRequest.setMaxKeys(200);
|
|
listObjectsRequest.setMaxKeys(200);
|
|
|
|
|
|
@@ -779,7 +623,7 @@ public class UploadToFdkkOssUtil {
|
|
// 复制文件
|
|
// 复制文件
|
|
sourceKeyList.parallelStream().forEach(key -> {
|
|
sourceKeyList.parallelStream().forEach(key -> {
|
|
log.info("开始复制:" + key);
|
|
log.info("开始复制:" + key);
|
|
- s3.copyObject(this.bucket, key, this.bucket, key.replace(sourcePath, targetPath));
|
|
|
|
|
|
+ s3.copyObject(this.s3bucket, key, this.s3bucket, key.replace(sourcePath, targetPath));
|
|
log.info("复制成功:" + key);
|
|
log.info("复制成功:" + key);
|
|
});
|
|
});
|
|
s3.shutdown();
|
|
s3.shutdown();
|
|
@@ -805,7 +649,7 @@ public class UploadToFdkkOssUtil {
|
|
.build();
|
|
.build();
|
|
// 复制文件
|
|
// 复制文件
|
|
log.info("开始复制:" + sourceKey);
|
|
log.info("开始复制:" + sourceKey);
|
|
- s3.copyObject(this.bucket, sourceKey, this.bucket, targetKey);
|
|
|
|
|
|
+ s3.copyObject(this.s3bucket, sourceKey, this.s3bucket, targetKey);
|
|
log.info("复制成功:" + sourceKey);
|
|
log.info("复制成功:" + sourceKey);
|
|
s3.shutdown();
|
|
s3.shutdown();
|
|
}
|
|
}
|
|
@@ -836,7 +680,7 @@ public class UploadToFdkkOssUtil {
|
|
case OSS:
|
|
case OSS:
|
|
return this.getObjectContentFromAli(bucket, objectName);
|
|
return this.getObjectContentFromAli(bucket, objectName);
|
|
case AWS:
|
|
case AWS:
|
|
- return this.getObjectContentFromAws(bucket, objectName);
|
|
|
|
|
|
+ return this.getObjectContentFromAws(s3bucket, objectName);
|
|
case LOCAL:
|
|
case LOCAL:
|
|
return this.getObjectContentFromLocal(objectName);
|
|
return this.getObjectContentFromLocal(objectName);
|
|
}
|
|
}
|
|
@@ -1042,7 +886,7 @@ public class UploadToFdkkOssUtil {
|
|
.withRegion(Regions.EU_WEST_2)
|
|
.withRegion(Regions.EU_WEST_2)
|
|
.build();
|
|
.build();
|
|
try {
|
|
try {
|
|
- GetObjectRequest request = new GetObjectRequest(this.bucket,objectName);
|
|
|
|
|
|
+ GetObjectRequest request = new GetObjectRequest(this.s3bucket,objectName);
|
|
s3.getObject(request,new File(localPath));
|
|
s3.getObject(request,new File(localPath));
|
|
return true;
|
|
return true;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|