69 lines
2.3 KiB
Java
69 lines
2.3 KiB
Java
package com.sky.utils;
|
|
|
|
import com.aliyun.oss.ClientException;
|
|
import com.aliyun.oss.OSS;
|
|
import com.aliyun.oss.OSSClientBuilder;
|
|
import com.aliyun.oss.OSSException;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Data;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.io.ByteArrayInputStream;
|
|
|
|
@Data
|
|
@AllArgsConstructor
|
|
@Slf4j
|
|
public class AliOssUtil {
|
|
|
|
private String endpoint;
|
|
private String accessKeyId;
|
|
private String accessKeySecret;
|
|
private String bucketName;
|
|
|
|
/**
|
|
* 文件上传
|
|
*
|
|
* @param bytes
|
|
* @param objectName
|
|
* @return
|
|
*/
|
|
public String upload(byte[] bytes, String objectName) {
|
|
|
|
// 创建OSSClient实例。
|
|
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
|
|
|
|
try {
|
|
// 创建PutObject请求。
|
|
ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));
|
|
} catch (OSSException oe) {
|
|
System.out.println("Caught an OSSException, which means your request made it to OSS, "
|
|
+ "but was rejected with an error response for some reason.");
|
|
System.out.println("Error Message:" + oe.getErrorMessage());
|
|
System.out.println("Error Code:" + oe.getErrorCode());
|
|
System.out.println("Request ID:" + oe.getRequestId());
|
|
System.out.println("Host ID:" + oe.getHostId());
|
|
} catch (ClientException ce) {
|
|
System.out.println("Caught an ClientException, which means the client encountered "
|
|
+ "a serious internal problem while trying to communicate with OSS, "
|
|
+ "such as not being able to access the network.");
|
|
System.out.println("Error Message:" + ce.getMessage());
|
|
} finally {
|
|
if (ossClient != null) {
|
|
ossClient.shutdown();
|
|
}
|
|
}
|
|
|
|
//文件访问路径规则 https://BucketName.Endpoint/ObjectName
|
|
StringBuilder stringBuilder = new StringBuilder("https://");
|
|
stringBuilder
|
|
.append(bucketName)
|
|
.append(".")
|
|
.append(endpoint)
|
|
.append("/")
|
|
.append(objectName);
|
|
|
|
log.info("文件上传到:{}", stringBuilder.toString());
|
|
|
|
return stringBuilder.toString();
|
|
}
|
|
}
|