欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

SpringCloudAlibaba使用OSS图片上传

时间:2023-06-19
文章目录

前言开发流程

一、添加依赖二、申请账号三、开启OSS 对象存储四、添加配置文件五、文件上传接口开发

1、新建FileController2、MultipartFile 序列化问题 前言

在实习过程中,遇到了这样的需求,为了方便以后的重复使用便记录了下来。
前端接口要求:

请求URL:http://localhost:9527/admin/image/AliYunImgUpload
请求方法:POST
表单数据:file(二进制)

开发流程 一、添加依赖

com.alibaba.cloud spring-cloud-starter-alicloud-oss

二、申请账号

登录阿里云官网,进入控制台,搜索RAM,点击访问控制:

创建用户:


手机验证码验证通过,然后授予权限:


授权成功后点击完成
记录你的 AccessKey ID和AccessKey Secret信息。

三、开启OSS 对象存储

进入OSS控制中心(是的,这个需要钱):

创建Bucket:



信息确认无误后,点击确定。

记录地域地址:

到此注册的操作就完成了,下面看看代码怎么编写吧。

四、添加配置文件

我的配置文件是通过拉取Nacos的配置进行的,跟一般的使用没啥太大差别。

spring: cloud: alicloud: access-key: AccessKey ID secret-key: AccessKey Secret oss: endpoint: 外网访问的Endpoint(地域节点)

五、文件上传接口开发 1、新建FileController

@RestController@Api(tags = "文件上传")public class FileController { @Autowired private OSS ossClient;// Bucket 名称大家可自行查看自己的 @Value("${oss.bucket.name:Bucket 名称}") private String bucketName; @Value("${spring.cloud.alicloud.oss.endpoint}") private String endPoint; @ApiOperation(value = "文件上传") @PostMapping("/image/AliYunImgUpload") @ApiImplicitParams({ @ApiImplicitParam(name = "file" ,value = "你要上传的文件") }) public R fileUpload(@RequestParam("file") MultipartFile file) throws IOException { String fileName = DateUtil.today().replaceAll("-","/") + "/" + file.getOriginalFilename(); // 文件上传 ossClient.putObject(bucketName, fileName, file.getInputStream()); return R.ok("https://" + bucketName + "." + endPoint + "/" + fileName); }}

注意:如果跟我一样有web的日志记录需要做如下操作,否则会出现报错。

2、MultipartFile 序列化问题

MultipartFile 使用fastjson 序列化会报错,因此我们需要忽略掉它:
修改WebLogAspect里面的代码:

if (parameterNames[i].equals("password") || parameterNames[i].equals("file")) { methodParametersWithValues.put(parameterNames[i], "受限的支持类型");}else{ methodParametersWithValues.put(parameterNames[i], args[i]);}

至此关于SpringCloudAlibaba使用OOS图片上传的功能就完成啦(σ゚∀゚)σ…:*☆哎哟不错哦

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。