【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.mzph.cn/news/237139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【K8s】3# 使用kuboard管理K8s集群(NFS存储安装)

文章目录 1.NFS是什么2.配置NFS服务器2.1.执行以下命令安装 nfs 服务器所需的软件包2.2.执行命令 vim /etc/exports&#xff0c;创建 exports 文件&#xff0c;文件内容如下2.3.执行以下命令&#xff0c;启动 nfs 服务2.4.检查配置是否生效 3.在客户端测试NFS3.1.执行以下命令安…

easyexcle处理复杂动态单元格合并问题,合并动态行列

GetMapping("getAddDelSummaryExport") ApiOperation("新增删除比例报表--导出") ApiImplicitParams({ApiImplicitParam(name "season", value "季节", paramType "query", dataType "String"),ApiImplicitPa…

Electron Vite打包后,部分图标未显示的解决方案

背景 这个问题&#xff0c;弄了一晚上&#xff0c;头都大了&#xff0c;找了一堆博客也没解决。主要参考这个&#xff1a;https://blog.csdn.net/m0_73845616/article/details/129741099。 下面讲一下我的解决方案。 解决方案 上面链接里的方法&#xff0c;我采用第二、三个都…

python中文语音识别

1&#xff09; 生成需要识别的wav文件&#xff0c;SpeechRecognition需要wav文件&#xff0c;不能识别mp3文件 安装库&#xff1a; sudo apt install espeak ffmpeg libespeak1 pip install pyttsx3 代码&#xff1a; def demo_tts_wav(): import pyttsx3 engine pytt…

C# Onnx Yolov8 Detect 物体检测 多张图片同时推理

目录 效果 模型信息 项目 代码 下载 C# Onnx Yolov8 Detect 物体检测 多张图片同时推理 效果 模型信息 Model Properties ------------------------- date&#xff1a;2023-12-18T11:47:29.332397 description&#xff1a;Ultralytics YOLOv8n-detect model trained on …

Istio 社区周报(第一期):2023.12.11 - 12.17

欢迎来到 Istio 社区周报 Istio 社区朋友们&#xff0c;你们好&#xff01; 我很高兴呈现第一期 Istio 社区周报。作为 Istio 社区的一员&#xff0c;每周我将为您带来 Istio 的最新发展、有见地的社区讨论、专业提示和重要安全新闻内容。 祝你阅读愉快&#xff0c;并在下一期中…

第二十二章 : Spring Boot 集成定时任务(一)

第二十二章 &#xff1a; Spring Boot 集成定时任务&#xff08;一&#xff09; 前言 本章知识点&#xff1a; 介绍使用Spring Boot内置的Scheduled注解来实现定时任务-单线程和多线程&#xff1b;以及介绍Quartz定时任务调度框架&#xff1a;简单定时调度器&#xff08;Simp…

ubuntu 18.04 共享屏幕

用于windows远程ubuntu 1. sudo apt install xrdp 2. 配置 sudo vim /etc/xrdp/startwm.sh 把最下面的test和exec两行注释掉&#xff0c;添加一行 gnome-session 3.安装dconf-editor : sudo apt-get install dconf-editor 关闭require encrytion org->gnome->desktop…

go从0到1项目实战体系二:数据类型

1. 数据类型: (1). bool类型(只能存true和false) (2). 数字类型: 主要有int(4个字节)、int8(1个字节,8是8个bit位)、int16(2个字节)、int32(3个字节)、int64(4个字节)、uint8(无符号)、uint16、uint32、uint64、float32(4个字节)、float64 (3). 字符类型: ①. 语法:var a b…

农夫山姆(0006)

题意 原来体积是ABC,现在体积是(A-1)* (B-2)*&#xff08;C-2&#xff09;,输入一个现在的体积n&#xff0c;要求现在的体积比原来减少了多少&#xff0c;输出一个减小的最小值和最大值 输入 4 输出 28 41 说明 注意问题的答案可能足够大&#xff0c;所以必须使用 64 位…

TransXNet实战:使用TransXNet实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文提出了一种名为D-Mixer的轻量级双动态TokenMixer&#xff0c;旨在解决传统卷积的静态性质导致的表示差异和特征融合问题。D-Mixer通过应用高效的全局注意力和输入依赖的深度卷…

计算机网络实用工具之parsero

简介 Parsero是一个用Python编写的免费脚本&#xff0c;它读取web服务器的robots.txt文件&#xff0c;探测“Disallow”的条目并返回响应状态码。 例&#xff1a; 200 OK The request has succeeded. 403 Forbidden The server understood the request, but is r…

Py之tensorflow-addons:tensorflow-addons的简介、安装、使用方法之详细攻略

Py之tensorflow-addons&#xff1a;tensorflow-addons的简介、安装、使用方法之详细攻略 目录 tensorflow-addons的简介 tensorflow-addons的安装 tensorflow-addons的使用方法 1、使用 TensorFlow Addons 中的功能&#xff1a; tensorflow-addons的简介 TensorFlow Addon…

【SpringBoot快速入门】(4)SpringBoot项目案例代码示例

目录 1 创建工程3 配置文件4 静态资源 之前我们已经学习的Spring、SpringMVC、Mabatis、Maven&#xff0c;详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例&#xff0c;上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动&#xff0c;从这一节开…

Python---TCP 客户端程序开发

1. 开发 TCP 客户端程序开发步骤回顾 创建客户端套接字对象和服务端套接字建立连接发送数据接收数据关闭客户端套接字 2. socket 类的介绍 导入 socket 模块 import socket 创建客户端 socket 对象 socket.socket(AddressFamily, Type) 参数说明: AddressFamily 表示IP地…

大数据爬虫技术

随着互联网的发展&#xff0c;各行各业都开始注重数据的分析和应用。而大数据的出现&#xff0c;则让这一切变得更加便捷。但是&#xff0c;大数据的获取过程却并不简单&#xff0c;需要借助于爬虫技术来实现。本文将从基础概念到实践操作&#xff0c;详细介绍大数据爬虫技术。…

解决Electron应用中的白屏问题的实用方法

在使用Electron构建应用程序时&#xff0c;一些开发者可能会面临窗口加载过程中出现的白屏问题。这种问题主要分为两个方面&#xff1a; Electron未加载完毕HTML&#xff1a; 这时Electron自身产生的白色背景可能导致用户在启动应用时看到一片空白。HTML加载渲染过程中的短暂白…

JavaScript:函数

JavaScript&#xff1a;函数 函数的作用函数的声明和调用函数声明函数调用函数重复声明 函数传参传参语法参数默认值与参数数量问题传参数量过多传参数量太少参数默认值 函数的返回值函数表达式匿名函数立即执行函数 函数的作用 在我们编程过程中&#xff0c;会出现一种情况&a…

[软件] Image2LCD v4.0

介绍 通过打开图片, 可以提取图片的像素特征, 生成.c文件, 或者二进制文件等, 提供人们根据需要选择. 16位真彩色 每一个像素点需要用16位来表示, 分别是RGB, R: 5位 G: 6位, B: 5位, 共两个字节. 配置 tftLCD180显示屏, 官方给的参考代码, 需要如下所示设置.

gateway配置

server:port: 8080 spring:application:name: test-gatewaycloud:nacos:discovery:server-addr: localhost:8848gateway:discovery:locator:enabled: false#是否开启网关enabled: trueroutes:- id: test-order-route#目标微服务的请求地址和端口uri: lb://test-orderpredicates…