课程名称:Spring Cloud 进阶 Alibaba 微服务体系自媒体实战
课程章节: 第4章 文件存储服务器解决方案
主讲老师: 风间影月
课程内容
本质上oss原理和fdfs也是差不多的,构建一个clint后,把文件流往里面一放,就能完成上传了。
引入OSS依赖
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </dependency>
UploaderService
/** * 在阿里OSS中上传文件 */ public String uploadOSS(MultipartFile file, String userId, String fileExtName) throws Exception;
@Autowired private FileResource fileResource; @Autowired private AliyunResource aliyunResource; @Override public String uploadOSS(MultipartFile file, String userId, String fileExtName) throws Exception { // 构建ossClient OSS ossClient = new OSSClientBuilder() .build(fileResource.getEndpoint(), aliyunResource.getAccessKeyId(), aliyunResource.getAccessKeySecret()); InputStream inputStream = file.getInputStream(); String fileName = sid.nextShort(); String myObjectName = fileResource.getObjectName() + "/" + userId + "/" + fileName + "." + fileExtName; ossClient.putObject(fileResource.getBucketName(), myObjectName, inputStream); ossClient.shutdown(); return myObjectName; }
file-dev.properties(同prod)
file.endpoint=oss-cn-shanghai.aliyuncs.com file.bucketName=imooc-news file.objectName=image/face
直接修改controller中的方法,去调用oss的service就行
FileUploaderController:
path = uploaderService.uploadOSS(file, userId, suffix); finalUserFaceUrl = fileResource.getOssHost() + path;
file-dev.properties(同prod)
file.ossHost=https://imooc-news.oss-cn-shanghai.aliyuncs.com/
课程收获
OSS对象存储简介
对象存储服务(Object Storage Service,简称OSS)
阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。非常适合存储非结构化数据,例如视频、图形、日志、文本文件以及各种App应用、多终端同步软件、网盘下载站的文件等,单个文件的大小从1字节到48.8TB,可以存储的个数无限制;
前置操作
1、注册阿里云账户并登录至控制台
可以直接使用自己的支付宝账户登录,或者使用手机号注册;
2、登录控制台,开通对象存储OSS服务
3、创建bucket
使用OSS存储的基本逻辑单元是bucket,bucket即为桶的意思,创建一个桶,即创建了一个可以上传文件的容器,然后客户端就可以将文件上传到这个桶中;
然后可以基于这个bucket创建文件目录,并可以测试在线上传文件