记录两种 避免暴露阿里云账号访问密钥(AccessKey ID和AccessKey Secret),由客户端直接调用OSS做增删的方法
一. oss客户端直传的场景
什么是客户端直传_对象存储 OSS-阿里云帮助中心 (aliyun.com)
在典型的服务端和客户端架构下,常见的文件上传方式是服务端代理上传:客户端将文件上传到业务服务器,然后业务服务器将文件上传到OSS。在这个过程中,一份数据需要在网络上传输两次,会造成网络资源的浪费、增大服务端的资源开销。为了解决这一问题,您可以在客户端直连OSS来完成文件上传,无需经过业务服务器中转。
二.使用临时访问凭证的方式执行OSS相关操作
oss文档链接:使用STS临时访问凭证访问OSS_对象存储 OSS-阿里云帮助中心 (aliyun.com)
贴上后台读物获取STS临时访问凭证的代码
public static AssumeRoleResponse.Credentials sts() {
AssumeRoleResponse.Credentials credentials = null;
// 设置临时访问凭证的有效时间为3600秒。
Long durationSeconds = 3600L;
try {
// regionId表示RAM的地域ID。以华东1(杭州)地域为例,regionID填写为cn-hangzhou。也可以保留默认值,默认值为空字符串("")。
String regionId = "cn-hangzhou";
// 添加endpoint。适用于Java SDK 3.12.0及以上版本。
DefaultProfile.addEndpoint(regionId, "Sts", "sts.cn-hangzhou.aliyuncs.com");
// 添加endpoint。适用于Java SDK 3.12.0以下版本。
// DefaultProfile.addEndpoint("",regionId, "Sts", endpoint);
// 构造default profile。
// IClientProfile profile = DefaultProfile.getProfile(regionId, OSSProperties.accessKeyId, OSSProperties.accessKeySecret);
IClientProfile profile = DefaultProfile.getProfile(regionId, "********", "u*********