|
@@ -1,175 +1,175 @@
|
|
|
-package com.qmth.teachcloud.common.util;
|
|
|
-
|
|
|
-import com.aliyun.oss.OSS;
|
|
|
-import com.aliyun.oss.OSSClientBuilder;
|
|
|
-import com.aliyun.oss.model.*;
|
|
|
-import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
-import com.qmth.teachcloud.common.domain.AliYunOssDomain;
|
|
|
-import org.apache.commons.io.IOUtils;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.context.annotation.Bean;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
-import java.io.ByteArrayInputStream;
|
|
|
-import java.io.File;
|
|
|
-import java.io.IOException;
|
|
|
-import java.io.InputStream;
|
|
|
-import java.util.Calendar;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
-
|
|
|
-
|
|
|
- * @Description: oss工具
|
|
|
- * @Param:
|
|
|
- * @return:
|
|
|
- * @Author: wangliang
|
|
|
- * @Date: 2020/4/4
|
|
|
- */
|
|
|
-@Component
|
|
|
-public class OssUtil {
|
|
|
- private final static Logger log = LoggerFactory.getLogger(OssUtil.class);
|
|
|
-
|
|
|
- AliYunOssDomain aliYunOssDomain;
|
|
|
-
|
|
|
- OSS ossClient;
|
|
|
-
|
|
|
- @Bean
|
|
|
- public AliYunOssDomain ossDomain(AliYunOssDomain aliYunOssDomain) {
|
|
|
- this.aliYunOssDomain = aliYunOssDomain;
|
|
|
- this.ossClient = new OSSClientBuilder().build(this.aliYunOssDomain.getEndpoint(), this.aliYunOssDomain.getAccessKeyId(), this.aliYunOssDomain.getAccessKeySecret());
|
|
|
- return this.aliYunOssDomain;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * oss上传文件
|
|
|
- *
|
|
|
- * @param dirName
|
|
|
- * @param inputStream
|
|
|
- * @param md5
|
|
|
- */
|
|
|
- public void ossUpload(String dirName, InputStream inputStream, String md5) throws IOException {
|
|
|
- log.info("ossUpload is come in");
|
|
|
- ObjectMetadata meta = new ObjectMetadata();
|
|
|
- if (Objects.nonNull(md5)) {
|
|
|
-
|
|
|
- meta.setContentMD5(md5);
|
|
|
- }
|
|
|
- PutObjectRequest putObjectRequest = new PutObjectRequest(this.aliYunOssDomain.getBucket(), dirName, inputStream, meta);
|
|
|
- PutObjectResult por = this.ossClient.putObject(putObjectRequest);
|
|
|
- log.info("dirName:{},requestid:{}", dirName, por.getRequestId());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * oss上传文件
|
|
|
- *
|
|
|
- * @param dirName
|
|
|
- * @param file
|
|
|
- * @param md5
|
|
|
- */
|
|
|
- public void ossUpload(String dirName, File file, String md5) {
|
|
|
- log.info("ossUpload is come in");
|
|
|
- ObjectMetadata meta = new ObjectMetadata();
|
|
|
- if (Objects.nonNull(md5)) {
|
|
|
-
|
|
|
- meta.setContentMD5(md5);
|
|
|
- }
|
|
|
- PutObjectRequest putObjectRequest = new PutObjectRequest(this.aliYunOssDomain.getBucket(), dirName, file);
|
|
|
- PutObjectResult por = this.ossClient.putObject(putObjectRequest);
|
|
|
- log.info("dirName:{},requestid:{}", dirName, por.getRequestId());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * oss上传文件
|
|
|
- *
|
|
|
- * @param dirName
|
|
|
- * @param content
|
|
|
- */
|
|
|
- public void ossUpload(String dirName, String content) {
|
|
|
- log.info("ossUpload is come in");
|
|
|
- PutObjectRequest putObjectRequest = new PutObjectRequest(this.aliYunOssDomain.getBucket(), dirName, new ByteArrayInputStream(content.getBytes()));
|
|
|
- PutObjectResult por = ossClient.putObject(putObjectRequest);
|
|
|
- log.info("dirName:{},requestid:{}", dirName, por.getRequestId());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * oss copy
|
|
|
- *
|
|
|
- * @param dirName
|
|
|
- * @param dirNewName
|
|
|
- */
|
|
|
- public void ossCopy(String dirName, String dirNewName) {
|
|
|
- log.info("ossCopy is come in");
|
|
|
- CopyObjectResult result = ossClient.copyObject(this.aliYunOssDomain.getBucket(), dirName, this.aliYunOssDomain.getBucket(), dirNewName);
|
|
|
- log.info("ETag:{},LastModified:{}", result.getETag(), result.getLastModified());
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * 从oss上下载文件到本地
|
|
|
- *
|
|
|
- * @param dirName
|
|
|
- * @param localPath
|
|
|
- * @throws IOException
|
|
|
- */
|
|
|
- public File ossDownload(String dirName, String localPath) throws IOException {
|
|
|
- log.info("ossDownload is come in");
|
|
|
-
|
|
|
- File localFile = new File(localPath);
|
|
|
- if (!localFile.getParentFile().exists()) {
|
|
|
- localFile.getParentFile().mkdirs();
|
|
|
- }
|
|
|
- ossClient.getObject(new GetObjectRequest(this.aliYunOssDomain.getBucket(), dirName), localFile);
|
|
|
- return localFile;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * 从oss上下载文件到byte[]
|
|
|
- *
|
|
|
- * @param objectName
|
|
|
- * @throws IOException
|
|
|
- */
|
|
|
- public byte[] ossDownload(String objectName) throws IOException {
|
|
|
- log.info("oss Download is come in");
|
|
|
- OSSObject obj = ossClient.getObject(new GetObjectRequest(this.aliYunOssDomain.getBucket(), objectName));
|
|
|
- byte[] data = IOUtils.toByteArray(obj.getObjectContent());
|
|
|
- obj.close();
|
|
|
- return data;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * oss删除文件
|
|
|
- *
|
|
|
- * @param dirName
|
|
|
- */
|
|
|
- public void ossDelete(String dirName) {
|
|
|
- ossClient.deleteObject(this.aliYunOssDomain.getBucket(), dirName);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * oss批量删除文件
|
|
|
- *
|
|
|
- * @param paths
|
|
|
- */
|
|
|
- public void ossBatchDelete(List<String> paths) {
|
|
|
-
|
|
|
- DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(new DeleteObjectsRequest(this.aliYunOssDomain.getBucket()).withKeys(paths));
|
|
|
- deleteObjectsResult.getDeletedObjects();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- * 获取私有bucket文件访问url
|
|
|
- *
|
|
|
- * @param objectPath
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String getPrivateUrl(String objectPath) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(new Date());
|
|
|
- calendar.add(Calendar.MILLISECOND, SystemConstant.OSS_URL_EXPIRE);
|
|
|
- GeneratePresignedUrlRequest generatePresignedUrlRequest;
|
|
|
- generatePresignedUrlRequest = new GeneratePresignedUrlRequest(this.aliYunOssDomain.getBucket(), objectPath);
|
|
|
- generatePresignedUrlRequest.setExpiration(calendar.getTime());
|
|
|
- return ossClient.generatePresignedUrl(generatePresignedUrlRequest).toString();
|
|
|
- }
|
|
|
-}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|