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

【SpringBoot实战】基于阿里云实现文件上传

【SpringBoot实战】基于阿里云实现文件上传

在实际项目开发中,不可避免地会使用到阿里云OSS进行文件存储。尽管阿里云有详细的开发文档,但本篇博客的目的是让我们能够用简明的代码快速实现这个功能。

引入依赖

<dependencies><!-- 阿里云oss依赖 --><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.9.1</version></dependency><!-- 日期工具栏依赖 --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10.1</version></dependency>
</dependencies>

文件上传

public String fileUpload(MultipartFile file) {String endpoint = "endpoint";  // 如:oss-cn-shanghai.aliyuncs.comString keyId = "keyId";String keySecret = "keySecret";String bucketName = "bucketName";  // bucket名称// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, keyId, keySecret);try {InputStream inputStream = file.getInputStream();// 文件实际名称String filename = file.getOriginalFilename();// 使用uuid确保文件名唯一String uuid = UUID.randomUUID().toString().replaceAll("-", "");// 对上传文件进行分组,根据当前年/月/日String date = new DateTime().toString("yyyy/MM/dd");filename = date + "/" + uuid + filename;// 创建PutObjectRequest对象PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, filename, inputStream);// 设置该属性可以返回response。如果不设置,则返回的response为空putObjectRequest.setProcess("true");// 上传文件PutObjectResult result = ossClient.putObject(putObjectRequest);// 返回文件的urlreturn result.getResponse().getUri();} catch (Exception e) {e.printStackTrace();} finally {if (ossClient != null) {ossClient.shutdown();}}return null;}
http://www.lryc.cn/news/267085.html

相关文章:

  • 大数据技术学习笔记(十一)—— Flume
  • 电路设计时,继电器线圈、风扇电机绕组等感性负载必须有续流二极管。
  • Mongodb基础介绍与应用场景
  • mysql参数配置binlog
  • pytorch常用的几个函数详解
  • Linux下安装Flume
  • 20231225使用BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪抓取BLE广播数据
  • .net6使用Sejil可视化日志
  • mysql(51) : 大数据导出为insert
  • MFC查找错误的方法
  • Jave EE 网络原理之网络层与数据链路层
  • ElasticSearch 使用映射定义索引结构
  • HTML---网页布局
  • python 普通存款(单利)计算公式:
  • 什么是 PHP 内存溢出 ?遇到了要如何解决呢 ?
  • 本地使用 docker 运行OpenSearch + Dashboard + IK 分词插件
  • 【JavaEE初阶一】线程的概念与简单创建
  • 三叠云工程劳务管理,优化建筑施工管理,提升效率与质量
  • RocketMQ连接报错RemotingConnectException: connect to <192.168.57.129:9876>解决
  • 设计模式--桥接模式
  • redis基本用法学习(C#调用StackExchange.Redis操作redis)
  • 单挑力扣(LeetCode)SQL题:1308. 不同性别每日分数总计
  • Vue3组合式-依赖注入provideinject
  • SRE 与 DevOps 的不同之处
  • 【湖仓一体尝试】MYSQL和HIVE数据联合查询
  • SpringCloud跨服务调用失败Seata无法回滚解决办法
  • OSG三维渲染引擎编程学习之一百零一:“第十一章:OSG粒子” 之 “11.2 粒子模拟过程”
  • Autosar CAN开发03(从实际应用认识CAN总线的物理层)
  • vue中父子组件传值
  • 【网络编程】基于UDP数据报实现回显服务器/客户端程序