全网最详细SpringBoot、SpringCloud整合阿里云OSS对象存储服务
创始人
2024-01-29 23:55:36
0

1、进入阿里云官网

https://www.aliyun.com/

2、搜索“对象存储OSS”

3、进入“管理控制台”

4、进入“Bucket列表”,点击“创建Bucket”

5、根据实际情况选择,最后点击“确定”

这里插入一个可以通过代码创建Bucket的测试类,如下:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;public class OssTest {public static void main(String[] args) {String endpoint = "https://oss-cn-shanghai.aliyuncs.com";String accessKeyId = "LTAI5tRo9YESJJp2EjPscF1h";String accessKeySecret = "UhClPCgctvM0gZdcppsCc0vTMOVuKm";String bucketName = "sgg-yygh-syt-test";//创建OSSClient实例OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);//创建存储空间ossClient.createBucket(bucketName);//关闭OSSClientossClient.shutdown();}
}

6、点击“文件列表”,选择“上传文件”

7、选择“扫描文件”,顺便选择一张图片后,再点击“上传文件”

8、返回文件列表,点击“详情”

9、复制url,粘贴到浏览器上就可以下载此文件了

以上均为控制台操作文件,下面展示通过代码操作

10、选择“AccessKey管理”

11、点击“创建AccessKey”

12、创建成功后,把“AccessKey ID”和“AccessKey Secret”复制下来,后面要用

13、开始代码开发,引入依赖,如果是SpringBoot项目就不用加nacos依赖

com.aliyun.ossaliyun-sdk-oss3.15.1

joda-timejoda-time2.10.1
        
com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery2.2.0.RELEASE

14、添加配置文件application.properties,SpringBoot项目就不用加nacos的配置了

# 服务端口
server.port=8205
# 服务名
spring.application.name=service-oss#返回json的全局时间格式.
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848aliyun.oss.endpoint=oss-cn-shanghai.aliyuncs.com
aliyun.oss.accessKeyId=LTAI5tRo9YESJJp2EjPscF1h
aliyun.oss.secret=UhClPCgctvM0gZdcppsCc0vTMOVuKm
aliyun.oss.bucket=sgg-yygh-syt

aliyun.oss.accessKeyId=LTAI5tRo9YESJJp2EjPscF1h
aliyun.oss.secret=UhClPCgctvM0gZdcppsCc0vTMOVuKm

aliyun.oss.endpoint=oss-cn-shanghai.aliyuncs.com

aliyun.oss.bucket=sgg-yygh-syt

15、添加启动类,SpringBootApplication的

(exclude=DataSourceAutoConfiguration.class)

和EnableDiscoveryClient注解看情况加

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置
@EnableDiscoveryClient//开启nacos注册中心
@ComponentScan(basePackages = {"com.hospital"})//可以扫描到另一个模块的swagger
public class ServiceOssApplication {public static void main(String[] args) {SpringApplication.run(ServiceOssApplication.class, args);}
}

16、创建ConstantOssPropertiesUtils配置类

import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class ConstantOssPropertiesUtils implements InitializingBean {@Value("${aliyun.oss.endpoint}")private String endpoint;@Value("${aliyun.oss.accessKeyId}")private String accessKeyId;@Value("${aliyun.oss.secret}")private String secret;@Value("${aliyun.oss.bucket}")private String bucket;public static String EDNPOINT;public static String ACCESS_KEY_ID;public static String SECRECT;public static String BUCKET;@Overridepublic void afterPropertiesSet() throws Exception {EDNPOINT=endpoint;ACCESS_KEY_ID=accessKeyId;SECRECT=secret;BUCKET=bucket;}
}

17、编写controller,service,serviceImpl

controller层:

import com.hospital.common.result.Result;
import com.hospital.oss.service.FileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;@RestController
@RequestMapping("/api/oss/file")
public class FileApiController {@Autowiredprivate FileService fileService;@PostMapping("/fileUpload")public Result fileUpload(MultipartFile file){//获取上传文件String url = fileService.uploadFile(file);return Result.ok(url);}
}

service层:

import org.springframework.web.multipart.MultipartFile;public interface FileService {//上传文件到阿里云ossString uploadFile(MultipartFile file);
}

serviceImpl层:

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.hospital.oss.service.FileService;
import com.hospital.oss.utils.ConstantOssPropertiesUtils;
import org.joda.time.DateTime;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;@Service
public class FileServiceImpl implements FileService {@Overridepublic String uploadFile(MultipartFile file) {//获取ConstantOssPropertiesUtils中的属性String endpoint = ConstantOssPropertiesUtils.EDNPOINT;String accessKeyId = ConstantOssPropertiesUtils.ACCESS_KEY_ID;String accessKeySecret = ConstantOssPropertiesUtils.SECRECT;String bucketName = ConstantOssPropertiesUtils.BUCKET;try {//创建OSSClient实例OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);//上传文件流InputStream inputStream = file.getInputStream();String fileName = file.getOriginalFilename();//生成随机唯一值,使用uuid,添加到文件名称里面String uuid = UUID.randomUUID().toString().replaceAll("-","");fileName = uuid+fileName;//按照当前日期,创建文件夹,上传到创建文件夹里面//2021/02/02/01.jpgString timeUrl = new DateTime().toString("yyyy/MM/dd");fileName = timeUrl+"/"+fileName;//调用方法实现上传ossClient.putObject(bucketName, fileName, inputStream);//关闭OSSClient。ossClient.shutdown();//上传之后文件路径//https://yygh-atguigu.oss-cn-beijing.aliyuncs.com/01.jpgString url = "https://"+bucketName+"."+endpoint+"/"+fileName;//返回return url;} catch (IOException e) {e.printStackTrace();return null;}}
}

18、swagger上传文件测试

19、打开阿里云OSS文件列表查看

最后, 整合阿里云OSS对象存储服务成功!!! 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...