阿里云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上传文件(图片或视频)相关推荐

  1. SpringBoot整合阿里云OSS上传文件

    一.需求分析 文件上传是一个非常常见的功能,就是通过IO流将文件写到另外一个地方,这个地方可以是项目下的某个文件夹里,或者是本地电脑某个盘下面,还可以是云服务OSS里面,这里就是我要讲到的OSS,我写 ...

  2. springboot整合阿里云oss上传的方法示例

    这篇文章主要介绍了springboot整合阿里云oss上传的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 OSS申请和 ...

  3. 第三方服务整合-阿里云OSS上传文件-填坑

    目录 如下,引入aliyun-oss失败: 原因: 解决方法 OssController 如下,引入aliyun-oss失败: com.alibaba.cloud:aliyun-oss-spring- ...

  4. SpringBoot集成阿里云OSS上传文件

    文章目录 前言 一.准备环境 1.在搜索框搜索 对象存储OSS 2.创建Bucket 3.找到开发相关信息 二.具体代码 1.Maven依赖 2.application.yml配置 3.AliOssP ...

  5. uniapp 阿里云 oss 上传文件/图片

    项目背景: uniapp  开发的 混合项目,包含 H5, ios,  android  三端开发:看了下 本身 alioss  是有提供 JS SDK,但是考虑到兼容问题,所以采用了 PostObj ...

  6. spring boot 整合 阿里云oss上传

    Spring Boot 整合 阿里云OSS上传 OSS申请和配置 1. 注册登录 2.开通以及配置 springboot整合使用 1. 进入我们springboot的项目中,导入oss相关依赖 2. ...

  7. thinkPHP 阿里云OSS 上传文件、直接下载

    阿里云OSS 上传文件.直接下载 1. 安装OSS SDK composer require aliyuncs/oss-sdk-php 2. thinkPHP接口 public function up ...

  8. 阿里云OSS上传文件时,如何显示上传网速

    阿里云OSS上传文件时,如何显示上传网速 业务场景 用户上传时,网速很慢,或者在上传大文件时,虽然有进度条,但是动的很慢,或者不明显,用户会产生困惑. 所以就产生了一个显示网速的需求点. 实现方式 E ...

  9. Java实现阿里云OSS上传文件

    推荐:前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.. 点击跳转到网站 1.准备工作:创建操作阿里云OSS许可证 阿里云官方文档 这里不再赘述,根据官方文档一步步的 ...

  10. 阿里云OSS上传文件设置请求头

    之前写过一篇发送文件消息的,原生input上传文件(聊天发送文件消息),这次的需求就是更改上传地址,使用阿里云OSS上传. 如果想了解阿里云对象存储OSS是如何使用的,请看阿里云存储对象OSS使用讲解 ...

最新文章

  1. CentOS7攻克日记(三) —— 安装Python3.6
  2. SendMessage 和 PostMessage
  3. poj 1256 Anagram—next_permutation的神奇应用
  4. UVALive7670 Asa's Chess Problem,上下界费用流,另类解法
  5. jmeter线程说明_jmeter 线程组
  6. 基于阿里云SDK实现发送短信功能
  7. oj1047: 对数表
  8. 期末考试之排名次java_2020超星尔雅《JavaWeb应用开发》期末测试答案
  9. 大麦网抢票软件工具开发系列(一)
  10. 2018百分点认知智能新产品暨E轮融资即将发布
  11. iwork8旗舰版 android,性能彪悍 双面神兽——酷比魔方iwork8旗舰版体验
  12. Debian配置主机名,域名,网卡IP地址
  13. Intent中putExtra()方法用法
  14. BBU+RRU基本介绍
  15. 低通滤波器 截止频率 学习笔记
  16. 模电笔记2 二极管 稳压二极管
  17. adobe imageready怎么扣图
  18. MySQL查询日期为一年第几天第几周,天数周数反查日期
  19. C++.02: Visual Studio 2022 文件筛选器与虚拟目录
  20. DDoS攻击解决方案-云防护

热门文章

  1. python使用matplotlib可视化线图(line plot)、使用semilogy函数将Y轴数据处理为对数坐标(logarithmic scale in Matplotlib)
  2. Git详细教程(三):window系统下,使用Git Gui管理项目
  3. 计算机页码格式罗马数字,word 页码 罗马数字怎么从1开始
  4. 计算机快捷截图方式,Windows系统电脑快速屏幕截图方式
  5. linux在线语音播报功能
  6. 欠阻尼衰减振荡Matlab语言,欠阻尼振荡曲线的衰减系数怎么求
  7. Oracle标准成本差异,标准成本与实际成本比较
  8. python鸡兔同笼头35只_python_鸡兔同笼问题
  9. 全志A33N切换分支.repo/repo/repo forall -c git checkout exdroid-7.1.1_r23-a33-v7.0rc2.1
  10. 梯度下降与支持向量机