New file |
| | |
| | | package com.ruoyi.system.api.util; |
| | | |
| | | 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.EndpointConfiguration; |
| | | 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 java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.util.UUID; |
| | | 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 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 { |
| | | AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, |
| | | SECRET_KEY); |
| | | ClientConfiguration awsClientConfig = new ClientConfiguration(); |
| | | awsClientConfig.setSignerOverride("AWSS3V4SignerType"); |
| | | awsClientConfig.setProtocol(Protocol.HTTP); |
| | | s3client = AmazonS3ClientBuilder.standard() |
| | | .withCredentials(new AWSStaticCredentialsProvider(credentials)) |
| | | .withClientConfiguration(awsClientConfig) |
| | | .withEndpointConfiguration(new 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; |
| | | } |
| | | } |