阿里云OSS文件存储

本文最后更新于:2 分钟前

阿里云的文件OSS文件存储对象

在阿里云控制台开通 对象存储OSS服务

新建一个 Bucket 列表

Java对接 OSS参考链接:https://help.aliyun.com/document_detail/32009.html

导入 OSS 的 SDK依赖

1
2
3
4
5
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>

如果使用的是Java 9及以上的版本,则需要添加jaxb相关依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>

定义 OSSUploadService 对接文件上传

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@Service
public class OSSUploadService {

public String OssUploadFile(MultipartFile file) {
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
String endpoint = "yourEndpoint";
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 填写Bucket名称,例如examplebucket。
String bucketName = "examplebucket";

OSS ossClient = null;
try {
// 创建OSSClient实例。
ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 获取文件上传的 流
InputStream inputStream = file.getInputStream();
// 构建日期目录
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String datePath = simpleDateFormat.format(new Date());
// 获取文件名,并 重命名
String originalFilename = file.getOriginalFilename();
String imgSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));
String fileNmae = UUID.randomUUID().toString() + imgSuffix;

String finalURL = datePath + "/" + fileNmae;
// 文件上传到 阿里云服务器
ossClient.putObject(bucketName, finalURL, inputStream);

return "https://" + bucketName + "." + endpoint + "/" + fileNmae;
} catch (Exception e) {
e.printStackTrace();
return "出错了";
} finally {
// 关闭OSSClient。
ossClient.shutdown();
}
}
}

相关参数的获取

endpoint

accessKeyId,yourAccessKeySecret


本文作者: 仅安
本文链接: https://jinan6.vip/posts/2770303004/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!