(阿里云Bucket域名、Key、秘钥等自行创建)
1 导入依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
2 构建OSSClient实例
public class FileBlobUtil {
// 阿里云API的内或外网域名
private static String endpoint;
// 阿里云API的密钥Access Key ID
private static String accessKeyId;
// 阿里云API的密钥Access Key Secret
private static String accessKeySecret;
// 阿里云API的bucket名称
private static String bucketName;
// 赋值
public static void settingIniOSS(String endpoint, String accessKeyId, String accessKeySecret,String bucketName) {
FileBlobUtil.endpoint = endpoint;
FileBlobUtil.accessKeyId = accessKeyId;
FileBlobUtil.accessKeySecret = accessKeySecret;
FileBlobUtil.bucketName = bucketName;
}
public static void uploadFile(String objectKey, MultipartFile multipartFile)
throws OSSException, ClientException, FileNotFoundException {
// 创建OSSClient的实例
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
if(multipartFile.getSize() != 0 && !"".equals(multipartFile.getName())){
// getInputStream()返回一个InputStream以从中读取文件的内容。通过此方法就可以获取到流
InputStream multipartFileInputStream = multipartFile.getInputStream();
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectKey, multipartFileInputStream);
ossClient.putObject(putObjectRequest);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
// 关闭流
ossClient.shutdown();
}
}
}