当前位置: 首页 > news >正文

Springboot项目实现将文件上传到阿里云

Springboot项目实现将文件上传到阿里云

一、概述

二、具体步骤

2.1引入阿里云工具

首先先建utils包,然后引入AliOSSUtils类,如下:

package com.hechixueyuan.forestfiredetectionsystem.utils;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.UUID;/*** 阿里云 OSS 工具类*/
//将这个类交给ioc容器管理
@Component
public class AliOSSUtils {private String endpoint = "自己的endpoint";private String accessKeyId = "自己的accessKeyId";private String accessKeySecret = "自己的accessKeySecret";private String bucketName = "自己的bucketName";/*** 实现上传图片到OSS*/public String upload(MultipartFile file) throws IOException {// 获取上传的文件的输入流InputStream inputStream = file.getInputStream();// 避免文件覆盖String originalFilename = file.getOriginalFilename();String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));//上传文件到 OSSOSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);ossClient.putObject(bucketName, fileName, inputStream);//文件访问路径String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;// 关闭ossClientossClient.shutdown();return url;// 把上传到oss的路径返回}}

2.2写好Controller层代码

package com.hechixueyuan.forestfiredetectionsystem.controller;
import com.hechixueyuan.forestfiredetectionsystem.pojo.Result;
import com.hechixueyuan.forestfiredetectionsystem.utils.AliOSSUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.util.UUID;//这个注解是用来生成日志的
@RestController
public class UoloadController {
//    注入阿里云工具类@Autowiredprivate AliOSSUtils aliOSSUtils;//这里我是手动引入注释private static final Logger log = LoggerFactory.getLogger(UoloadController.class);
//    上传到阿里云(数据传输一般使用post请求)
@PostMapping("upload")public Result upload(MultipartFile image) throws IOException {
//        写入日志log.info("上传文件,文件名为:{}",image.getOriginalFilename());
//       取得文件上传后的urlString url = aliOSSUtils.upload(image);
//    记录到日志里面log.info("文件上传成功,文件的url为:{}",url);return Result.success(url);}
}

2.3使用Postman测试

其中值得注意的是"image"对应着后端post请求方法public Result upload(MultipartFile image)中的形参名,文件的话讲image的类型置为file类型,即可点击value在磁盘中选择自己想要上传的文件。

http://www.dtcms.com/a/297287.html

相关文章:

  • Python实战:数据处理与可视化的奇妙之旅
  • 双指针算法介绍及使用(下)
  • JavaScript 中 let 在循环中的作用域机制解析
  • 没有 Mac,如何上架 iOS App?多项目复用与流程标准化实战分享
  • uniapp使用css实现进度条带动画过渡效果
  • uniapp之微信小程序标题对其右上角按钮胶囊
  • golang怎么实现每秒100万个请求(QPS),相关系统架构设计详解
  • 海康SDK球机精确控制[球机预置点配置]
  • 未来之路 - eBPF 与 Cilium 如何重塑网络
  • 在kdb+x中使用SQL
  • 理解Spring中的IoC
  • 基于新型群智能优化算法的BP神经网络初始权值与偏置优化
  • WPF MVVM进阶系列教程(二、数据验证)
  • Elasticsearch-9.0.4安装教程
  • 【SpringAI实战】实现仿DeepSeek页面对话机器人(支持多模态上传)
  • MySQL-Every derived table must have its own alias
  • OpenRLHF:面向超大语言模型的高性能RLHF训练框架
  • 基于 Nginx 与未来之窗防火墙构建下一代自建动态网络防护体系​—仙盟创梦IDE
  • Java-82 深入浅出 MySQL 内部架构:服务层、存储引擎与文件系统全覆盖
  • 秋招Day19 - 分布式 - 分布式锁
  • 静默的环保革命:Deepoc具身智能如何让垃圾桶读懂垃圾的语言
  • 一道检验编码能力的字符串的题目
  • 进程控制->进程替换(Linux)
  • LLM:Day3
  • 学习嵌入式的第二十九天-数据结构-(2025.7.16)线程控制:互斥与同步
  • 【运维】ubuntu 安装图形化界面
  • 顺应AI浪潮,电科金仓数据库再创辉煌
  • 继承接口实现websocke,实现任意路径链接
  • 可以修改公网ip吗
  • X-plore File Manager v4.34.02 修改版:安卓设备上的全能文件管理器