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

三十六、案例-文件上传-阿里云OSS-集成

阿里云OSS集成-介绍

阿里云OSS集成-介绍

阿里云OSS集成-步骤

阿里云OSS集成-步骤

代码

UploadController类

package com.itheima.controller;import com.itheima.pojo.Result;
import com.itheima.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;@Slf4j
@RestController
public class UploadController {@Autowiredprivate AliOSSUtils aliOSSUtils;@PostMapping("/upload")public Result upload(MultipartFile image) throws IOException {log.info("文件上传, 文件名: {}", image.getOriginalFilename());//调用阿里云OSS工具类进行文件上传String url = aliOSSUtils.upload(image);log.info("文件上传完成,文件访问的url: {}", url);return Result.success(url);}}

AliOSSUtils类(存放于utils文件夹下,并且代码中的endpoint 、accessKeyId、accessKeySecret 、bucketName 填自己的 )

工具类项目目录

package com.itheima.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 工具类*/
@Component
public class AliOSSUtils {private String endpoint = "填阿里云官网OSS界面对应的信息";private String accessKeyId = "填阿里云官网OSS界面对应的信息";private String accessKeySecret = "填阿里云官网OSS界面对应的信息";private String bucketName = "填阿里云官网OSS界面对应的信息";/*** 实现上传图片到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的路径返回}}

pom.xml类(注意引入阿里云OSS要求的依赖)

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version>
</dependency>

注意:如果使用的是Java 9及以上的版本,则需要添加以下JAXB相关依赖。

<dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version>
</dependency>
<dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.3</version>
</dependency>

结果:

结果
结果

前后端联调结果

结果
结果
结果
结果


文章转载自:

http://YM444nBY.mftdq.cn
http://3dOKLMSB.mftdq.cn
http://qwRby6gw.mftdq.cn
http://4FJPyarM.mftdq.cn
http://5hzwWlb6.mftdq.cn
http://cZy6QHoQ.mftdq.cn
http://XSiqC5uT.mftdq.cn
http://FcQsdaWy.mftdq.cn
http://wbE8PHPg.mftdq.cn
http://Jb0sg6O6.mftdq.cn
http://aIlyL6z7.mftdq.cn
http://i2HmpCnz.mftdq.cn
http://PJnqpLnN.mftdq.cn
http://tL5VUncY.mftdq.cn
http://b0s8pT6X.mftdq.cn
http://TbxIz62m.mftdq.cn
http://PEVDi07Z.mftdq.cn
http://1qvbffle.mftdq.cn
http://jrhce2Xc.mftdq.cn
http://XfB2y3wu.mftdq.cn
http://uZ05HYL9.mftdq.cn
http://HOCmC52q.mftdq.cn
http://FshalD48.mftdq.cn
http://OjVVeoHz.mftdq.cn
http://ZBC2wM4D.mftdq.cn
http://p1YNkhbb.mftdq.cn
http://zMG4lPVB.mftdq.cn
http://ZsphK8x1.mftdq.cn
http://dhKIQ0qZ.mftdq.cn
http://OtBU5Ck1.mftdq.cn
http://www.dtcms.com/a/377754.html

相关文章:

  • 网编.hw.9.10
  • 4215kg轻型载货汽车变速器设计cad+设计说明书
  • Python数据可视化科技图表绘制系列教程(七)
  • 【 VMware Workstation 提示“虚拟机已在使用”怎么办?一篇文章彻底解决!】
  • WebSocket网络编程深度实践:从协议原理到生产级应用
  • 数字健康新图景:AI健康小屋如何重塑我们的健康生活
  • ⚡ Linux sed 命令全面详解(包括参数、指令、模式空间、保持空间)
  • Codeforces Round 1049 (Div. 2) D题题解记录
  • 视频分类标注工具
  • 【学习】vue计算属性
  • Torch 安装
  • 如何使用 DeepSeek 帮助自己的工作?的技术文章大纲
  • Object.values(allImages).forEach(src => { }
  • git rebase 的使用场景
  • 嵌入式场景kvdb数据库的使用(二)——UnQLite数据库的移
  • 基于MQTT的实时消息推送系统设计与实现(Java后端+Vue前端)
  • 柔性数组与队列杂记
  • XCVP1902-2MSEVSVA6865 AMD 赛灵思 XilinxVersal Premium FPGA
  • iPaaS与ESB:企业集成方案的选择与实践!
  • [硬件电路-177]:如何用交流电流源(偏置电流+交变电流)模拟PD的暗电流 + 变化的光电流
  • O3.1 opencv高阶
  • 【JAVA】java的程序逻辑控制
  • 真正有效的数据指标体系应该长什么样?
  • MATLAB中的霍夫变换直线检测
  • Thread类的基本用法(上)
  • 数据建模的真相!为什么90%的团队都在做无用功
  • 30 分钟让 AI 开口查订单:React-Native + Coze 全链路语音对话落地指南
  • Nacos报错NacosException: Client not connected, current status:STARTING
  • 基于SpringBoot+Vue2开发的母婴育婴师平台
  • GNU 工具链与ARM 交叉编译工具链