|
|
@@ -1,96 +0,0 @@
|
|
|
-package nju.seec.helper.util;
|
|
|
-
|
|
|
-import com.aliyun.oss.ClientException;
|
|
|
-import com.aliyun.oss.OSS;
|
|
|
-import com.aliyun.oss.OSSClientBuilder;
|
|
|
-import com.aliyun.oss.OSSException;
|
|
|
-import com.aliyun.oss.model.PutObjectRequest;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import nju.seec.helper.config.properties.OssProperties;
|
|
|
-import nju.seec.helper.util.enums.ExceptionType;
|
|
|
-import nju.seec.helper.util.exception.HelperException;
|
|
|
-import org.springframework.scheduling.annotation.Async;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
-import java.io.InputStream;
|
|
|
-import java.net.URL;
|
|
|
-import java.util.Date;
|
|
|
-
|
|
|
-/**
|
|
|
- * use oss
|
|
|
- *
|
|
|
- * @author cst
|
|
|
- */
|
|
|
-@Slf4j
|
|
|
-@Component
|
|
|
-public class FileUtils {
|
|
|
- private final OssProperties ossProperties;
|
|
|
-
|
|
|
- public FileUtils(OssProperties ossProperties) {
|
|
|
- this.ossProperties = ossProperties;
|
|
|
- }
|
|
|
-
|
|
|
- public void upload(String objectName, InputStream inputStream) {
|
|
|
- OSS ossClient = getOss();
|
|
|
- PutObjectRequest putObjectRequest = new PutObjectRequest(ossProperties.getBucketName(), objectName, inputStream);
|
|
|
- try {
|
|
|
- ossClient.putObject(putObjectRequest);
|
|
|
- } catch (OSSException | ClientException e) {
|
|
|
- log.error(e.getMessage());
|
|
|
- throw HelperException.of(ExceptionType.ERROR, "文件上传失败");
|
|
|
- } finally {
|
|
|
- if (ossClient != null) {
|
|
|
- ossClient.shutdown();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public String getUrl(String objectName, long seconds) {
|
|
|
- OSS ossClient = getOss();
|
|
|
- Date expiration = new Date(System.currentTimeMillis() + seconds * 1000);
|
|
|
- try {
|
|
|
- URL url = ossClient.generatePresignedUrl(ossProperties.getBucketName(), objectName, expiration);
|
|
|
- return url.toString();
|
|
|
- } catch (OSSException | ClientException e) {
|
|
|
- log.error(e.getMessage());
|
|
|
- throw HelperException.of(ExceptionType.ERROR, "获取文件链接失败");
|
|
|
- } finally {
|
|
|
- if (ossClient != null) {
|
|
|
- ossClient.shutdown();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void copy(String sourceObjectName, String destinationObjectName) {
|
|
|
- OSS ossClient = getOss();
|
|
|
- try {
|
|
|
- ossClient.copyObject(ossProperties.getBucketName(), sourceObjectName, ossProperties.getBucketName(), destinationObjectName);
|
|
|
- } catch (OSSException | ClientException e) {
|
|
|
- log.error(e.getMessage());
|
|
|
- throw HelperException.of(ExceptionType.ERROR, "文件复制失败");
|
|
|
- } finally {
|
|
|
- if (ossClient != null) {
|
|
|
- ossClient.shutdown();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Async
|
|
|
- public void delete(String objectName) {
|
|
|
- OSS ossClient = getOss();
|
|
|
- try {
|
|
|
- ossClient.deleteObject(ossProperties.getBucketName(), objectName);
|
|
|
- } catch (OSSException | ClientException e) {
|
|
|
- log.error(e.getMessage());
|
|
|
- throw HelperException.of(ExceptionType.ERROR, "文件删除失败");
|
|
|
- } finally {
|
|
|
- if (ossClient != null) {
|
|
|
- ossClient.shutdown();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private OSS getOss() {
|
|
|
- return new OSSClientBuilder().build(ossProperties.getEndpoint(), ossProperties.getAccessKeyId(), ossProperties.getAccessKeySecret());
|
|
|
- }
|
|
|
-}
|