springboot整合阿里云oss上传文件(图片或视频)
阿里云oss:是一个分布式的文件服务系统,可以进行图片(视频)的上传和下载
首先要有自己的阿里云账号,登录之后搜索对象存储oss
这个时候我们需要开通一下oss,开通之后进入oss控制台,然后需要创建Bucket(类似于文件夹,用于存储我们的图片等信息)
这个时候bucket列表里面就会有我们刚才创建的bucket:
那下面就使用springboot来整合oss,完成图片(视频)的上传和下载:
注意:调用oss也需要accessKey和secret
我们先看下官方提供的接口文档:
可以看到安装的话就是引入相关依赖即可:
初始化的相关代码也已经提供了:
其他步骤就不一一看了,有兴趣的可以自己去阿里云官方查看文档,下面就开始整合:
新建一个springboot项目添加相关的依赖信息(由于我要使用swagger测试,因此也顺便加了一下swagger相关的依赖):
<!-- 阿里云oss依赖 --> <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version> </dependency> <!-- swagger --> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version> </dependency> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version> </dependency> |
然后配置文件里面配置如下所示:主要是阿里云oss相关配置信息和文件上传大小配置
## oss param config aliyun.oss.endpoint=oss-cn-hangzhou.aliyuncs.com aliyun.oss.accessKeyId=xxxxxxxxxx aliyun.oss.secret=xxxxxxxxxxxx aliyun.oss.bucket=hanansheng # 最大上传单个文件大小:默认1M spring.servlet.multipart.max-file-size=1024MB # 最大置总上传的数据大小 :默认10M spring.servlet.multipart.max-request-size=1024MB |
然后开始写controller代码:
然后是service接口的定义:
最后是serviceImpl上传oss的代码:可以看到阿里云oss上传文件类型很多,这里我选择的是简单上传中的流式上传:
package com.example.ossboot.service.impl;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.ObjectMetadata;
import com.example.ossboot.service.FileService;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;@Service
public class FileServiceImpl implements FileService {@Value("${aliyun.oss.endpoint}")private String endpoint;@Value("${aliyun.oss.accessKeyId}")private String accessKeyId;@Value("${aliyun.oss.secret}")private String secret;@Value("${aliyun.oss.bucket}")private String bucket;@Overridepublic String upload(MultipartFile file) {// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写String endpoint = this.endpoint;// 阿里云账号AccessKeyString accessKeyId = this.accessKeyId;String accessKeySecret = this.secret;// 填写Bucket名称String bucketName = this.bucket;try{// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 上传文件流InputStream inputStream= file.getInputStream();String fileName=file.getOriginalFilename();String uuid = UUID.randomUUID().toString().replaceAll("-","");fileName = uuid+fileName;//按照当前日期,创建文件夹,上传到创建文件夹里面// 2022/03/15/xx.jpgString timeUrl = new DateTime().toString("yyyy/MM/dd");fileName = timeUrl+"/"+fileName;// 调用方法实现上传ossClient.putObject(bucketName,fileName,inputStream);// 关闭ossclientossClient.shutdown();// 上传之后文件路径String url="https://"+bucketName+"."+endpoint+"/"+fileName;return url;}catch (IOException e){e.printStackTrace();return null;}}
}
是不是感觉很简单。下面我通过swagger测试一下:
(1)上传图片测试:
可以看到上传成功,并且返回上传后的图片路径:
https://hanansheng.oss-cn-hangzhou.aliyuncs.com/hy.jpg.crdownload
浏览器访问可以看到是可以访问得到的:
并且oss里面也有了上传的图片信息:
(2)上传视频测试:
返回上传后视频地址:
https://hanansheng.oss-cn-hangzhou.aliyuncs.com/2022/03/15/20053aa41a494b5eb2b68dabb713188714.mp4
浏览器访问:
并且阿里云oss里面也是有的相关信息:
由于代码逻辑里面我以当前日期为文件夹来存储,所以如下:
自此,简单上传中的流式上传算是完成了,相关的demo已经上传csdn,有需要的可以下载:
springboot整合阿里云oss进行文件上传-Java文档类资源-CSDN下载
springboot整合阿里云oss上传文件(图片或视频)相关推荐
- SpringBoot整合阿里云OSS上传文件
一.需求分析 文件上传是一个非常常见的功能,就是通过IO流将文件写到另外一个地方,这个地方可以是项目下的某个文件夹里,或者是本地电脑某个盘下面,还可以是云服务OSS里面,这里就是我要讲到的OSS,我写 ...
- springboot整合阿里云oss上传的方法示例
这篇文章主要介绍了springboot整合阿里云oss上传的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 OSS申请和 ...
- 第三方服务整合-阿里云OSS上传文件-填坑
目录 如下,引入aliyun-oss失败: 原因: 解决方法 OssController 如下,引入aliyun-oss失败: com.alibaba.cloud:aliyun-oss-spring- ...
- SpringBoot集成阿里云OSS上传文件
文章目录 前言 一.准备环境 1.在搜索框搜索 对象存储OSS 2.创建Bucket 3.找到开发相关信息 二.具体代码 1.Maven依赖 2.application.yml配置 3.AliOssP ...
- uniapp 阿里云 oss 上传文件/图片
项目背景: uniapp 开发的 混合项目,包含 H5, ios, android 三端开发:看了下 本身 alioss 是有提供 JS SDK,但是考虑到兼容问题,所以采用了 PostObj ...
- spring boot 整合 阿里云oss上传
Spring Boot 整合 阿里云OSS上传 OSS申请和配置 1. 注册登录 2.开通以及配置 springboot整合使用 1. 进入我们springboot的项目中,导入oss相关依赖 2. ...
- thinkPHP 阿里云OSS 上传文件、直接下载
阿里云OSS 上传文件.直接下载 1. 安装OSS SDK composer require aliyuncs/oss-sdk-php 2. thinkPHP接口 public function up ...
- 阿里云OSS上传文件时,如何显示上传网速
阿里云OSS上传文件时,如何显示上传网速 业务场景 用户上传时,网速很慢,或者在上传大文件时,虽然有进度条,但是动的很慢,或者不明显,用户会产生困惑. 所以就产生了一个显示网速的需求点. 实现方式 E ...
- Java实现阿里云OSS上传文件
推荐:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.. 点击跳转到网站 1.准备工作:创建操作阿里云OSS许可证 阿里云官方文档 这里不再赘述,根据官方文档一步步的 ...
- 阿里云OSS上传文件设置请求头
之前写过一篇发送文件消息的,原生input上传文件(聊天发送文件消息),这次的需求就是更改上传地址,使用阿里云OSS上传. 如果想了解阿里云对象存储OSS是如何使用的,请看阿里云存储对象OSS使用讲解 ...
最新文章
- CentOS7攻克日记(三) —— 安装Python3.6
- SendMessage 和 PostMessage
- poj 1256 Anagram—next_permutation的神奇应用
- UVALive7670 Asa's Chess Problem,上下界费用流,另类解法
- jmeter线程说明_jmeter 线程组
- 基于阿里云SDK实现发送短信功能
- oj1047: 对数表
- 期末考试之排名次java_2020超星尔雅《JavaWeb应用开发》期末测试答案
- 大麦网抢票软件工具开发系列(一)
- 2018百分点认知智能新产品暨E轮融资即将发布
- iwork8旗舰版 android,性能彪悍 双面神兽——酷比魔方iwork8旗舰版体验
- Debian配置主机名,域名,网卡IP地址
- Intent中putExtra()方法用法
- BBU+RRU基本介绍
- 低通滤波器 截止频率 学习笔记
- 模电笔记2 二极管 稳压二极管
- adobe imageready怎么扣图
- MySQL查询日期为一年第几天第几周,天数周数反查日期
- C++.02: Visual Studio 2022 文件筛选器与虚拟目录
- DDoS攻击解决方案-云防护
热门文章
- python使用matplotlib可视化线图(line plot)、使用semilogy函数将Y轴数据处理为对数坐标(logarithmic scale in Matplotlib)
- Git详细教程(三):window系统下,使用Git Gui管理项目
- 计算机页码格式罗马数字,word 页码 罗马数字怎么从1开始
- 计算机快捷截图方式,Windows系统电脑快速屏幕截图方式
- linux在线语音播报功能
- 欠阻尼衰减振荡Matlab语言,欠阻尼振荡曲线的衰减系数怎么求
- Oracle标准成本差异,标准成本与实际成本比较
- python鸡兔同笼头35只_python_鸡兔同笼问题
- 全志A33N切换分支.repo/repo/repo forall -c git checkout exdroid-7.1.1_r23-a33-v7.0rc2.1
- 梯度下降与支持向量机