> 第二步:在`application.properties`里配置相关环境
服务端口
server.port=8002
#服务名
spring.application.name=service_oss
#环境设置:dev test prod
spring.profiles.active=dev
#阿里云OSS
#不同的服务器,地址不同
aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com
aliyun.oss.file.keyid=LTAI5tCroixxjG2GbLgCVC4Y
aliyun.oss.file.keysecret=jM1gUo6w3p1SqGtHgWURXj6sTcaiCT
#bucket可以在控制台创建,也可以使用java代码创建
aliyun.oss.file.bucketname=edu-2330
> 第三步:主启动类配置
由于上传本地文件到阿里云OSS,所以不需要操作数据库,因此在主启动类需要添加相关注解
//DataSourceAutoConfiguration 由于此模块使用阿里云OSS存储文件,不需要访问数据库
//把数据源自动配置类去掉即可!防止报错!
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@ComponentScan(basePackages = {“com.pdx”})
public class OssApplication {
public static void main(String[] args) {
SpringApplication.run(OssApplication.class,args);
}
}
> 第四步:创建所需工具类
//当项目已启动,Spring接口,spring加载之后,执行接口中的一个方法
@Component
public class ConstantPropertiesUtils implements InitializingBean {
//读取配置文件内容
@Value("${aliyun.oss.file.endpoint}")
private String endpoint;
@Value("${aliyun.oss.file.keyid}")
private String keyId;
@Value("${aliyun.oss.file.keysecret}")
private String keySecret;
@Value("${aliyun.oss.file.bucketname}")
private String bucketName;
//定义公开的静态的常量
public static String END_POINT;
public static String ACCESS_KEY_ID;
public static String ACCESS_KEY_SECRET;
public static String BUCKET_NAME;
@Override
public void afterPropertiesSet() throws Exception {
END_POINT = endpoint;
ACCESS_KEY_ID = keyId;
ACCESS_KEY_SECRET = keySecret;
BUCKET_NAME = bucketName;
}
}
> 第五步:编写逻辑代码实现相关功能
* **前端控制层(Controller)**
@RestController
@RequestMapping(“/eduoss/fileoss”)
@CrossOrigin //解决跨域问题
public class OssController {
@Autowired
private OssService ossService;
//上传头像的方法
@PostMapping
public R uploadOssFile(MultipartFile file){
//获取上传的文件,MultipartFile
//返回上传到oss的路径,最后把路径上传到数据库对应字段
String url = ossService.uploadFileAvatar(file);
return R.ok().data("url",url);
}
}
* **业务层(Service | ServiceImpl)**
public interface OssService {
//上传文件到OSS
String uploadFileAvatar(MultipartFile file);
}
@Service
public class OssServiceImpl implements OssService {
//上传文件到OSS
@Override
public String uploadFileAvatar(MultipartFile file) {
//通过工具类来获取相应的值
String endpoint = ConstantPropertiesUtils.END_POINT;
String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
try{
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 获取上传文件的输入流
InputStream inputStream = file.getInputStream();
//获取文件名称
String filename = file.getOriginalFilename();
//调用OSS方法实现上传
//第一个参数 Bucket名称
//第二个参数 上传到OSS文件路径和文件名称
//第三个参数 上传文件输入流
ossClient.putObject(bucketName, filename, inputStream);
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
件名称
//第三个参数 上传文件输入流
ossClient.putObject(bucketName, filename, inputStream);
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
[外链图片转存中…(img-QuoFwrPf-1714360534710)]