|
@@ -5,6 +5,7 @@ import com.aliyun.oss.OSS;
|
|
|
import com.aliyun.oss.OSSClientBuilder;
|
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
|
import com.aliyun.oss.model.*;
|
|
|
+import com.qmth.themis.business.constant.SystemConstant;
|
|
|
import com.qmth.themis.business.domain.AliYunOssDomain;
|
|
|
import com.qmth.themis.business.domain.AliYunOssPrivateDomain;
|
|
|
import com.qmth.themis.business.domain.AliYunOssPublicDomain;
|
|
@@ -123,6 +124,7 @@ public class OssUtil {
|
|
|
*/
|
|
|
public void upload(boolean isPublic, String objectName, File file) throws IOException {
|
|
|
log.info("oss upload file is come in");
|
|
|
+ long start = System.currentTimeMillis();
|
|
|
String bucket = isPublic ? aliYunOssPublicDomain.getPublicBucket() : aliYunOssPrivateDomain.getPrivateBucket();
|
|
|
OSS client = isPublic ? publicClient : privateClient;
|
|
|
ObjectMetadata meta = new ObjectMetadata();
|
|
@@ -133,6 +135,8 @@ public class OssUtil {
|
|
|
PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, file, meta);
|
|
|
PutObjectResult por = client.putObject(putObjectRequest);
|
|
|
log.info("objectName:{},requestid:{}", objectName, por.getRequestId());
|
|
|
+ long end = System.currentTimeMillis();
|
|
|
+ System.out.println("总耗时:" + (end - start) / 1000 + "秒");
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -143,17 +147,46 @@ public class OssUtil {
|
|
|
* @param file
|
|
|
*/
|
|
|
public void uploadPart(boolean isPublic, String objectName, File file) throws IOException {
|
|
|
- log.info("oss upload file is come in");
|
|
|
+ log.info("oss uploadPart file is come in");
|
|
|
+ long start = System.currentTimeMillis();
|
|
|
String bucket = isPublic ? aliYunOssPublicDomain.getPublicBucket() : aliYunOssPrivateDomain.getPrivateBucket();
|
|
|
OSS client = isPublic ? publicClient : privateClient;
|
|
|
- ObjectMetadata meta = new ObjectMetadata();
|
|
|
- // 设置MD5校验。
|
|
|
- String md5 = BinaryUtil.toBase64String(BinaryUtil.calculateMd5(FileUtils.readFileToByteArray(file)));
|
|
|
- meta.setContentMD5(md5);
|
|
|
- // 上传内容到指定的存储空间(bucketName)并保存为指定的文件名称(objectName)。
|
|
|
- PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, file, meta);
|
|
|
- PutObjectResult por = client.putObject(putObjectRequest);
|
|
|
- log.info("objectName:{},requestid:{}", objectName, por.getRequestId());
|
|
|
+ try {
|
|
|
+ ObjectMetadata meta = new ObjectMetadata();
|
|
|
+// 指定上传的内容类型。
|
|
|
+// meta.setContentType("text/plain");
|
|
|
+ // 文件上传时设置访问权限ACL。
|
|
|
+ // meta.setObjectAcl(CannedAccessControlList.Private);
|
|
|
+ // 通过UploadFileRequest设置多个参数。
|
|
|
+ // 依次填写Bucket名称(例如examplebucket)以及Object完整路径(例如exampledir/exampleobject.txt),Object完整路径中不能包含Bucket名称。
|
|
|
+ UploadFileRequest uploadFileRequest = new UploadFileRequest(bucket, objectName);
|
|
|
+// .withProgressListener(new test());
|
|
|
+
|
|
|
+ // 通过UploadFileRequest设置单个参数。
|
|
|
+ // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
|
|
|
+ uploadFileRequest.setUploadFile(file.getPath());
|
|
|
+ // 指定上传并发线程数,默认值为1。
|
|
|
+ uploadFileRequest.setTaskNum(5);
|
|
|
+ // 指定上传的分片大小,单位为字节,取值范围为100 KB~5 GB。默认值为100 KB。
|
|
|
+ uploadFileRequest.setPartSize(1 * 1024 * 1024);
|
|
|
+ // 开启断点续传,默认关闭。
|
|
|
+ uploadFileRequest.setEnableCheckpoint(true);
|
|
|
+ // 记录本地分片上传结果的文件。上传过程中的进度信息会保存在该文件中,如果某一分片上传失败,再次上传时会根据文件中记录的点继续上传。上传完成后,该文件会被删除。
|
|
|
+ // 如果未设置该值,默认与待上传的本地文件同路径,名称为${uploadFile}.ucp。
|
|
|
+// uploadFileRequest.setCheckpointFile(SystemConstant.TEMP_FILES_DIR);
|
|
|
+ // 文件的元数据。
|
|
|
+ uploadFileRequest.setObjectMetadata(meta);
|
|
|
+ // 设置上传回调,参数为Callback类型。
|
|
|
+// uploadFileRequest.setCallback(t.callback());
|
|
|
+ // 断点续传上传。
|
|
|
+ client.uploadFile(uploadFileRequest);
|
|
|
+ long end = System.currentTimeMillis();
|
|
|
+ System.out.println("总耗时:" + (end - start) / 1000 + "秒");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(SystemConstant.LOG_ERROR, e);
|
|
|
+ } catch (Throwable ce) {
|
|
|
+ log.error(SystemConstant.LOG_ERROR, ce);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -256,5 +289,4 @@ public class OssUtil {
|
|
|
URL url = privateUrlClient.generatePresignedUrl(generatePresignedUrlRequest);
|
|
|
return url.toString();
|
|
|
}
|
|
|
-
|
|
|
}
|