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

使用JavaSDK简单上传文件到阿里云OSS服务中

进入参考文档

复制代码到项目test文件,自动生成demo.class文件

两处爆红错误

解决办法:

测试

mvn dependency:tree | findstr aliyun-sdk-oss

从日志来看,项目确实引入了 aliyun-sdk-oss,但版本是 3.10.2(较旧),可能需要 3.16.1 或更高版本来支持 SignVersion.V4。以下是解决方案:

强制使用最新版 OSS SDK

在您的 pom.xml 中,明确指定最新版本:

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.16.1</version><!-- 如果有其他依赖传递了旧版本,添加排除 --><exclusions><exclusion><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId></exclusion></exclusions>
</dependency>

然后编译一下

 配置凭证三步

OSS Java SDK快速入门_对象存储(OSS)-阿里云帮助中心

1. AccessKey:

 2.配置环境

以上是错误的

要将自己的key_Id和key_secret输上 

setx OSS_ACCESS_KEY_ID LTAI5t7f5dWpnaHKTSqn9Pvo
setx OSS_ACCESS_KEY_SECRET IHh4xf0U6cwCt8SFcOldl54TN2cQtz

 一定记得配置完要重启,否则不生效

修改代码设置

运行图片就上传了

 AliOSSUtils

package com.sky.utils;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;/*** 阿里云 OSS 工具类*/
public class AliOSSUtils {private String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";private String accessKeyId = "LTAI4GCH1vX6DKqJWxd6nEuW";private String accessKeySecret = "yBshYweHOpqDuhCArrVHwIiBKpyqSL";private String bucketName = "web-framework";/*** 实现上传图片到OSS*/public String upload(MultipartFile multipartFile) throws IOException {// 获取上传的文件的输入流InputStream inputStream = multipartFile.getInputStream();// 避免文件覆盖String fileName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss")) + multipartFile.getOriginalFilename();//上传文件到 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的路径返回}}

uploadController

package com.sky.controller.admin;import com.sky.result.Result;
import com.sky.utils.AliOSSUtils;
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;@RestController
public class UploadController {@Autowiredprivate AliOSSUtils aliOSSUtils;@PostMapping("/upload")public Result upload(MultipartFile image) throws IOException{//把图片直接上传到阿里的oss服务中String url = aliOSSUtils.upload(image);return Result.success(url);}
}

http://www.xdnf.cn/news/9506.html

相关文章:

  • GitHub开源|AI顶会论文中文翻译PDF合集(gpt-translated-pdf-zh)
  • 【AGI】Qwen3模型高效微调
  • Python生成ppt(python-pptx)N问N答(如何绘制一个没有背景的矩形框;如何绘制一个没有背景的矩形框)
  • 小提琴图绘制-Graph prism
  • 打破网络次元壁:NAT 穿透与内网打洞的 “Matrix 式” 通信革命
  • micromamba安装 配置 pythonocc安装
  • 智慧充电桩数字化管理平台:环境监测与动态数据可视化技术有哪些作用?
  • CentOS 7 如何安装libsndfile?
  • D2000平台上Centos使用mmap函数遇到的陷阱
  • 【机器学习基础】机器学习入门核心算法:隐马尔可夫模型 (HMM)
  • 【赵渝强老师】OceanBase的部署架构
  • 基于Qt的MCP LLM代理服务开发实战:从0到1扩展大语言模型
  • 本地(Linux)编译 MySQL 源码
  • Java高频面试之并发编程-23
  • FPGA实现CNN卷积层:高效窗口生成模块设计与验证
  • Transformer 通关秘籍11:Word2Vec 及工具的使用
  • 智能嗅探AJAX触发:机器学习在动态渲染中的创新应用
  • js中后台框架的增删改查要点
  • 影响沉金价格的因素如何体现在多层电路板制造上?
  • Eclipse 插件开发 5.2 编辑器 获取当前编辑器
  • C语言循环结构实战:while和for到底用哪个?
  • 时序数据库IoTDB如何快速高效地存储时序数据
  • 芯科科技推出首批第三代无线开发平台SoC,高度集成的解决方案推动下一波物联网实现突破
  • 国产化Excel处理组件Spire.XLS教程:如何使用 C# 将 Excel(XLS 或 XLSX)文件转换为 PDF
  • 如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信
  • 第 85 场周赛:矩阵重叠、推多米诺、新 21 点、相似字符串组
  • CMake指令:source_group()
  • 【数据分析】特征工程-特征选择
  • Git 使用规范
  • 关于git的使用流程