对象存储 OSS
就是所谓的“图床”吗?(致敬yupi /捂脸)
一图说明:
阿里云对象存储oos
阿里云对象存储 OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供最高可达 99.995 % 的服务可用性。多种存储类型供选择,全面优化存储成本。也属于SpringCloud Alibaba的组件。
创建阿里云对象Bucket
请小伙伴,先注册一个阿里云账号,并完成认证
阿里云地址:https://www.aliyun.com/
创建阿里云对象Bucket创建并测试
访问控制RAM(Resource AccessManagement)
是阿里云提供的一项管理用户身份与资源访问权限的服务
新建子账户
选择->开始使用子用户AccessKey。目的是为了避免使用阿里云账户的权限,权限太高不安全。
确定->生成OpenAPI调用信息。
重要提示:若开通 OpenAPI 调用访问,请及时保存 AccessKey 信息,页面关闭后将无法再次获取信息。
得到AccessKeyId和AccessKeySecret的信息
对新用户进行授权
授权->新增授权->填写授权主体->选择权限->系统策略->AliyunOSSFullAccess 管理对象存储服务(OSS)权限
上传方式
使用原生SDK进行上传
安装。通过maven引入。
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.1</version>
</dependency>
SDK:找到“简单上传”
经测试发现:
//objectName指的是保存到bucket的名字
//只能使用"/"表示文件夹。使用"\\"则会被当做文件名,以文件的形式保存
String objectName = "2023-6-26/台灯.jpg";
// 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。包括文件名
String filePath= "C:\\Users\\Stein\\Pictures\\家居图片\\15.jpg";
使用SpringCloud Alibaba OSS上传文件
通过https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.x/README-zh.md可以找到引入方法
<dependency>
<groupId>com.alibaba.cloud</groupId>
<!--这个是github上面原来的,不知道为啥改成这个了-->
<!--<artifactId>aliyun-oss-spring-boot-starter</artifactId>-->
<artifactId>spring-cloud-starter-alicloud-oss</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
在application.yml 和 application.properties 配置是一样的
cloud:
alicloud:
oss:
endpoint: https://oss-cn-chengdu.aliyuncs.com
access-key: ur-ak
secret-key: ur-sk
服务端签名直传
java实现服务端签名直传