前言开发流程
一、添加依赖二、申请账号三、开启OSS 对象存储四、添加配置文件五、文件上传接口开发
1、新建FileController2、MultipartFile 序列化问题 前言
在实习过程中,遇到了这样的需求,为了方便以后的重复使用便记录了下来。
前端接口要求:
开发流程 一、添加依赖请求URL:http://localhost:9527/admin/image/AliYunImgUpload
请求方法:POST
表单数据:file(二进制)
登录阿里云官网,进入控制台,搜索RAM,点击访问控制:
创建用户:
手机验证码验证通过,然后授予权限:
授权成功后点击完成
记录你的 AccessKey ID和AccessKey Secret信息。
进入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
注意:如果跟我一样有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图片上传的功能就完成啦(σ゚∀゚)σ…:*☆哎哟不错哦