栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloudAlibaba使用OSS图片上传(手把手教程)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloudAlibaba使用OSS图片上传(手把手教程)

文章目录

前言开发流程

一、添加依赖二、申请账号三、开启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图片上传的功能就完成啦(σ゚∀゚)σ…:*☆哎哟不错哦

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/735373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号