标签:存储 String oss 阿里 aliyun OSS
阿里云OSS分布式对象存储介绍开通
介绍
对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务设计可用性不低于99.995%。
OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
提供标准、低频访问、归档和冷归档四种存储类型,全面覆盖从热到冷的各种数据存储场景:
标准存储类型 | 高持久、高可用、高性能的对象存储服务,支持频繁的数据访问。是各种社交、分享类的图片、音视频应用、大型网站、大数据分析的合适选择。 |
---|---|
低频访问存储类型 | 适合长期保存不经常访问的数据(平均每月访问频率1到2次)。存储单价低于标准类型,适合各类移动应用、智能设备、企业数据的长期备份,支持实时数据访问。 |
归档存储类型 | 适合需要长期保存(建议半年以上)的归档数据,在存储周期内极少被访问,数据进入到可读取状态需要1分钟的解冻时间。适合需要长期保存的档案数据、医疗影像、科学资料、影视素材。 |
冷归档存储类型 | 适合需要超长时间存放的极冷数据。例如因合规要求需要长期留存的数据、大数据及人工智能领域长期积累的原始数据、影视行业长期留存的媒体资源、在线教育行业的归档视频等。 |
开通阿里云OSS
- 有阿里云账号、实名认证
- OSS介绍:https://www.aliyun.com/product/oss
- OSS控制台:https://oss.console.aliyun.com/bucket
- 学习路径:https://help.aliyun.com/learn/learningpath/oss.html
开通后的操作
1.创建Bucket
阿里云ram权限管理介绍
文件上传流程
- web控制台
- 前端->后端程序->阿里云OSS
-
云账号 AccessKey
- 访问阿里云 API 的密钥,具有该账户完全的权限
-
RAM权限介绍
-
阿里云用于各个产品的权限,基于RBAC模型,进行简单管理账号、统一分配权限、集中管控资源,从而建立安全、完善的资源控制体系。
-
众多产品,一般采用子账号进行分配权限,防止越权攻击
-
返回添加权限,给oss分配所有权限
阿里云OSS对象存储客户端集成和测试服务基于springboot
<!--阿里云OSS 依赖 -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
配置类
@ConfigurationProperties(prefix = "aliyun.oss")
@Configuration
@Data
public class OSSConfig {
private String endpoint;
private String accessKeyId;
private String accessKeySecret;
private String bucketname;
}
业务逻辑
@Service
@Slf4j
public class FileServiceImpl implements FileService {
@Autowired
private OSSConfig ossConfig;
@Override
public String uploadUserImg(MultipartFile file) {
// 获取相关配置
String bucketname = ossConfig.getBucketname();
String endpoint = ossConfig.getEndpoint();
String accessKeyId = ossConfig.getAccessKeyId();
String accessKeySecret = ossConfig.getAccessKeySecret();
OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);
// 获取原始文件名
String originalFileName = file.getOriginalFilename();
// jdk8 日期格式
LocalDateTime ldt = LocalDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
// 拼接路径,oss上存储的路径 2022/2/2/ssss.jpg
String folder = dtf.format(ldt);
String fileName = IdUtil.simpleUUID();
String extension = originalFileName.substring(originalFileName.lastIndexOf("."));
// 在oss上创建 1024-User/ 文件夹
String newFileName = "1024-User/"+folder+"/"+fileName+extension;
try {
// 推送
PutObjectResult putObjectResult = ossClient.putObject(bucketname, newFileName, file.getInputStream());
// 拼装返回路径
if (Objects.nonNull(putObjectResult)){
String imgUrl = "https://"+bucketname+"."+endpoint+"/"+newFileName;
return imgUrl;
}
}catch (IOException e) {
log.info("文件上传失败:{}",e);
}finally {
// oss关闭,不然会造成内存泄漏
ossClient.shutdown();
}
return null;
}
}
标签:存储,String,oss,阿里,aliyun,OSS 来源: https://www.cnblogs.com/oioi/p/15969334.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。