Springboot集成七牛云,实现图片上传功能

1|0七牛云的使用

1、进入官网,注册一个账号
在这里插入图片描述
2、找到对象存储
在这里插入图片描述
3、新建存储空间
在这里插入图片描述
4、管理存储空间
在这里插入图片描述
5、到此基本操作就完成了,接下来我们要在项目中使用

  • 方式一:官方的帮助文档,很详细:

步骤一:找到开发者中心
在这里插入图片描述
步骤二:选择对象存储
在这里插入图片描述
步骤三:找到Java的SDK

可以看到我们的官网非常详细!

在这里插入图片描述

  • 方式二:这里给大家封装好了一个工具类,maven项目可以直接用

官网是静态工具类,这里是注入到IOC容器当中!

1、导入pom依赖

<dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.7.0, 7.7.99]</version> </dependency>

2、工具类QiniuUtils

@Component public class QiniuUtils { public static final String url = "http://测试域名/"; //七牛云图片服务器域名(有效1个月) @Value("${qiniu.accessKey}") private String accessKey; //类似账号,在七牛云个人空间---密钥管理获取 @Value("${qiniu.accessSecretKey}") private String accessSecretKey; //类似密码 public boolean upload(MultipartFile file, String fileName){ //构造一个带指定 Region 对象的配置类 Configuration cfg = new Configuration(Region.huabei()); //根据自己的对象空间的地址选(华为) //...其他参数参考类注释 UploadManager uploadManager = new UploadManager(cfg); //...生成上传凭证,然后准备上传 (个人存储空间名字) String bucket = "个人存储空间名字"; //默认不指定key的情况下,以文件内容的hash值作为文件名 try { byte[] uploadBytes = file.getBytes(); Auth auth = Auth.create(accessKey, accessSecretKey); String upToken = auth.uploadToken(bucket); Response response = uploadManager.put(uploadBytes, fileName, upToken); //解析上传成功的结果 DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class); return true; } catch (Exception ex) { ex.printStackTrace(); } return false; } }

3、我们的两个密钥是配置在properties中,如下
在这里插入图片描述

4、还是在springboot的配置文件中

pringboot默认只上传1M的图片大小所以修改文件配置

# 上传文件总的最大值 spring.servlet.multipart.max-request-size=20MB # 单个文件的最大值 spring.servlet.multipart.max-file-size=2MB

5、使用QiniuUtils工具类

@RestController @RequestMapping("/upload") public class UploadController { @Autowired QiniuUtils qiniuUtils ; @PostMapping public Result upload(@RequestParam("image") MultipartFile file){ //原始文件名称比如 aa.png String originalFilename = file.getOriginalFilename() ; //将原始名称修改为:唯一文件名称 String fileName = UUID.randomUUID().toString() + "." + StringUtils.substringAfterLast(originalFilename, "."); //上传文件,上传到哪呢?图片服务器七牛云 //把图片发放到距离图片最近的服务器上,降低我们自身服务器的带宽消耗 boolean upload = qiniuUtils.upload(file, fileName); if (upload){ //上传成功 return Result.success(QiniuUtils.url+fileName) ; } return Result.fail(20001,"图片 上传失败!") ; } }

我们调用该接口给他一个文件就完成使用了,无论是网络还是本地,都会保存在七牛云服务器当中!
在这里插入图片描述

效果:上传本地或网络图片,会生成一个唯一图片在七牛云服务器中的地址!

在这里插入图片描述

结束


__EOF__

本文作者宋淇祥
本文链接https://www.cnblogs.com/qxsong/p/15837249.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   爪洼ing  阅读(329)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏