|
package com.ruoyi.file.utils;
|
|
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.util.UUID;
|
|
import com.amazonaws.ClientConfiguration;
|
import com.amazonaws.Protocol;
|
import com.amazonaws.auth.AWSCredentials;
|
import com.amazonaws.auth.AWSStaticCredentialsProvider;
|
import com.amazonaws.auth.BasicAWSCredentials;
|
import com.amazonaws.client.builder.AwsClientBuilder;
|
import com.amazonaws.services.s3.AmazonS3;
|
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
|
import com.amazonaws.services.s3.model.ObjectMetadata;
|
import com.amazonaws.services.s3.model.PutObjectRequest;
|
import com.amazonaws.services.s3.model.PutObjectResult;
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
/**
|
* 天翼云OBS 工具类
|
*
|
* @author mitao
|
* @date 2024/6/17
|
*/
|
|
public class StateCloudObsUtil {
|
|
public static String ACCESS_KEY = "MZTCFDOW5SGEC88GNMBV";
|
public static String SECRET_KEY = "b3HHfKEiEHjyo4ozzN4ZuaveCKvoFUAOPoba44ix";
|
public static String END_POINT = "obs.cn-sccd1.ctyun.cn";
|
public static String BUCKET = "jyzx-obs";
|
public static String DOMAIN = "https://" + BUCKET + "." + END_POINT + "/";
|
public static AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY,
|
SECRET_KEY);
|
|
public static String uploadFile(MultipartFile file) {
|
String originalFilename = file.getOriginalFilename();
|
InputStream inputStream = null;
|
try {
|
inputStream = file.getInputStream();
|
} catch (IOException e) {
|
throw new RuntimeException(e);
|
}
|
String fileName;
|
AmazonS3 s3client = null;
|
try {
|
ClientConfiguration awsClientConfig = new ClientConfiguration();
|
awsClientConfig.setSignerOverride("AWSS3V4SignerType");
|
awsClientConfig.setProtocol(Protocol.HTTP);
|
s3client = AmazonS3ClientBuilder.standard()
|
.withCredentials(new AWSStaticCredentialsProvider(credentials))
|
.withClientConfiguration(awsClientConfig)
|
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(END_POINT, ""))
|
.disableChunkedEncoding()
|
.enablePathStyleAccess()
|
.build();
|
System.out.print("=====connect success=====\n");
|
// 上传 object
|
ObjectMetadata objectMetadata = new ObjectMetadata();
|
fileName =
|
UUID.randomUUID().toString().replaceAll("-", "") + originalFilename.subSequence(
|
originalFilename.lastIndexOf("."), originalFilename.length());
|
PutObjectRequest request = new PutObjectRequest(BUCKET, fileName, inputStream,
|
objectMetadata);
|
PutObjectResult result = s3client.putObject(request);
|
System.out.format("Etag: %s, versionId: %s\n", result.getETag(),
|
result.getVersionId());
|
System.out.print("=====request success=====\n");
|
return DOMAIN + fileName;
|
} catch (Exception e) {
|
System.out.print("=====request fail=====\n");
|
System.out.print(e.getMessage());
|
}
|
return null;
|
}
|
|
public static String obsUploadStream(String code, InputStream content) throws IOException {
|
String fileName = "";
|
ObjectMetadata objectMetadata = new ObjectMetadata();// 创建上传Object的Metadata
|
fileName = "qrCode/" + UUID.randomUUID().toString().replaceAll("-", "") + "-id" + code
|
+ ".png";
|
AmazonS3 s3client = null;
|
try {
|
ClientConfiguration awsClientConfig = new ClientConfiguration();
|
awsClientConfig.setSignerOverride("AWSS3V4SignerType");
|
awsClientConfig.setProtocol(Protocol.HTTP);
|
s3client = AmazonS3ClientBuilder.standard()
|
.withCredentials(new AWSStaticCredentialsProvider(credentials))
|
.withClientConfiguration(awsClientConfig)
|
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(END_POINT, ""))
|
.disableChunkedEncoding()
|
.enablePathStyleAccess()
|
.build();
|
System.out.print("=====connect success=====\n");
|
// 上传 object
|
PutObjectRequest request = new PutObjectRequest(BUCKET, fileName, content,
|
objectMetadata);
|
PutObjectResult result = s3client.putObject(request);
|
System.out.format("Etag: %s, versionId: %s\n", result.getETag(),
|
result.getVersionId());
|
System.out.print("=====request success=====\n");
|
return DOMAIN + fileName;
|
} catch (Exception e) {
|
System.out.print("=====request fail=====\n");
|
System.out.print(e.getMessage());
|
}
|
return fileName;
|
}
|
}
|