1.登录阿里云官网

https://www.aliyun.com/?spm=5176.8466032.top-nav.dlogo.724e1450B4jI0X

2.选择控制台

3. 找到对象存储oss

4.选择Bucket 列表

5.创建bucket列表

6.获取密钥,点击右上角的小人,选择accesskey管理

7.继续使用

8.查看密钥,获取验证码

9.复制保存密钥

以上步骤是配置和获取阿里云oss文件服务器的密钥

java代码

maven依赖

<!--OSS依赖包-->
<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version>
</dependency>

Ossconfig配置类

@Configuration
public class OssConfig {@Beanpublic OSS ossClient(){// Endpoint以成都为例。//创建对象存储的域名String endpoint = "创建对象存储的域名";//验证码获取的accessKeyIdString accessKeyId = "验证码获取的accessKeyId";//验证码获取的accessKeySecretString accessKeySecret = "验证码获取的accessKeySecret";// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);return ossClient;}
}

查看创建对象存储的域名

1.在存储对象列表中点击对象存储名称

2.选择概览,复制外网访问后面的域名

controller

@RestController
public class OccController {@Autowiredprivate OSS ossClient;@PostMapping("/uploadImg")public AjaxResult uploadImg(MultipartFile file) throws IOException {System.out.println(file);//获取文件后缀名String originalFilename = file.getOriginalFilename();int i = originalFilename.lastIndexOf(".");String png = originalFilename.substring(i);//存储空间的名字String bucketName = "thk1030";//生成新的文件名 brand/:在bucketName里面创建的分组String fileName = "itsource/" + UUID.randomUUID().toString().substring(0, 4) + png;// 上传文件到指定的存储空间(bucketName)并将其保存为指定的文件名称(fileName)。ossClient.putObject(bucketName, fileName, file.getInputStream());//文件访问地址。String url = "https://" + bucketName + ".oss-cn-chengdu.aliyuncs.com" + "/" + fileName;System.out.println("上传成功返回的:" + url);// 关闭OSSClient。ossClient.shutdown();return AjaxResult.success(url);}
}

存储空间的名字

1.Bucket 列表中的Bucket 名称

postman测试上传

1.选择post请求,输入url地址

2.body里面选择form-data

3.输入file,选择file文件格式

4.选择上传图片

5.点击send

6.看一下阿里云列表

7.用在html页面上

在resources下面新建一个文件夹static,在static新建一个html5页面,将返回的url放在img标签里面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title>
</head>
<body>
<h1>图片</h1>
<img src="https://thk1030.oss-cn-chengdu.aliyuncs.com/itsource/c617.gif" width="200" height="200"/></body>
</html>

8.页面展示

浏览器输入localhost:9527/index.html

总结:

避坑:在上传一次图片或者视频之后,马上再次上传就会出现异常

经过测试,启动项目,第一次上传图片可以成功,重启项目,再次上传也可以成功,相当于无限循环第一次上传

原因

开始想过是第一次上传图片没有关闭流的原因,结果不是,

其实是因为注解的原因:@Bean  在ossconfig中,配置了这个@Bean,它默认是单例的,相当于第一次可以创建成功,第二次就创建不了,这样在第二次上传的时候,这个@Bean是失效的,没有ossconfig配置类,就会报出异常

解决方法:

在ossconfig的方法上加上注解:

@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)

@Configuration
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class OssConfig {@Bean  @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)public OSS ossClient() {return new OSSClientBuilder().build(OssConstant.endpoint, OssConstant.accessKeyId, OssConstant.accessKeySecret);}
}

类和方法都需要加上,配置类加了controller当然也要加上

@RestController
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class OccController {@Autowiredprivate OSS ossClient;@PostMapping("/uploadImg")public AjaxResult uploadImg(MultipartFile file) throws IOExceptiontry {System.out.println(file);//获取文件后缀名String originalFilename = file.getOriginalFilename();int i = originalFilename.lastIndexOf(".");String png = originalFilename.substring(i);//存储空间的名字String bucketName = "thk1030";//生成新的文件名 brand/:在bucketName里面创建的分组String fileName = "itsource/" + UUID.randomUUID().toString().substring(0, 4) + png;// 上传文件到指定的存储空间(bucketName)并将其保存为指定的文件名称(fileName)。ossClient.putObject(bucketName, fileName, file.getInputStream());//文件访问地址。String url = "https://" + bucketName + ".oss-cn-chengdu.aliyuncs.com" + "/" + fileName;System.out.println("上传成功返回的:" + url);return new AjaxResult(HttpStatus.SUCCESS, "操作成功", url);} catch (Exception e) {e.printStackTrace();return null;} finally {// 关闭OSSClient。ossClient.shutdown();}}
}

问题解决!,以上就是搭建一个简单的oss文件上传服务器,没什么难度,可以参考一下!

Springboot 搭建oss文件上传服务器相关推荐

  1. 本地文件上传服务器node插件,node 搭建本地文件上传服务器

    一直想尝试使用node搭建个文件服务器,今天简单写了一下,后面会慢慢完善,一起学习哈 首先,我们在做文件上传的时候,很多时候会使用到文件服务器. 从前端来说的话, 我们把数据上传到文件服务器上,然后文 ...

  2. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...

  3. 轻松搞定阿里OSS文件上传和图片下载

    轻松搞定阿里OSS文件上传和图片下载 目录 1. 阿里云oss账号准备   1.1 注册阿里云账号,并开通OSS存储服务   1.2 创建RAM子用户并使用子账户的AccessKeyId和Access ...

  4. js 导出pdf上传至oss_js实现oss文件上传及一些问题

    关于兼容性问题,ie8以下的可以使用4.x的版本 一.引入sdk和jq 二.基本配置 var client =newOSS.Wrapper({ region:'', accessKeyId:'', a ...

  5. 大文件上传服务器、支持超大文件HTTP断点续传实践总结

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/ababab12345/ article/details/80490621 最近由于笔者所在的研发集团产品需要,需要支持高性能的 ...

  6. 基于阿里云的OSS文件上传和下载

    OSS概述 OSS是基于阿里云的一个云平台文件保存的系统,我们可以将服务器的文件上传至云端从而减轻服务器的压力. 初体验 首先创建一个bucket (给你的云储存器配置名字等基本信息) 生成Asses ...

  7. OSS文件上传(页面直传)

    [前言] 近段时间在写一个文件上传的小功能,,公司的老项目实际已经有上传功能,,但是经理说在上传大文件的时候失败几率很大,,于是就仔仔细细的看了下老系统的文件上传的写法,在看了其写法之后决定重新整理一 ...

  8. Java中阿里云OSS文件上传工具类

    阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...

  9. 阿里云OSS文件上传下载,拿来即用

    什么是OSS 我们可以理解为就是一个资源服务器,在这之前我也尝试过Nginx当静态资源服务器,但效果比较一般,为什么选择阿里云OSS,只是因为最近刚好公司用到了,所以就接入了,还有其他的比如七牛云,腾 ...

最新文章

  1. 九度oj 题目1354:和为S的连续正数序列
  2. 在js对象上绑定js数组原生方法
  3. C# Image 、 byte[] 、Bitmap之间的转化
  4. Android开发之添加QQ群的方法(官方代码)
  5. 深度学习之循环神经网络(2)循环神经网络原理
  6. 抱歉,请不要把 “业务逻辑层” 理解为 “业务中台”
  7. linux看系统硬件,Linux 查看系统硬件信息(实例详解)
  8. mysql导入dat文件_MySql导入和抽取大数量级文件数据
  9. STM32 初学不知道外设对应的APB1还是APB2
  10. 华为鸿蒙系统明年8月份,华为鸿蒙系统明年上线,力争第五大操作系统,能否成功?...
  11. 实时计算-多级订单金额,及下级人数
  12. java 获取键盘点击_Java中获取键盘输入值的三种方法介绍
  13. linux 查看网站目录权限,解决SELinux对网站目录权限控制的不当的问题
  14. 一个html页面最多写多少代码,在多个页面使用同一个HTML片段的代码
  15. JAVA后端开发常用的Linux命令总结
  16. 微信小程序:实现按钮点击事件
  17. matlab已知上三角实现对角矩阵,MATLAB及其应用考试卷B卷2010-2011
  18. win7计算机管理没有键盘,win7系统中出现键盘无法输入的详细解决步骤
  19. VC++利用微软msxml3.dll创建xml文件
  20. [翻译Joel On Software]Joel测试:12步写出更高质量代码/The Joel Test: 12 Steps to Better Code

热门文章

  1. wireshark抓组播数据_wireshark过滤?wireshark 看端口号?wireshark组播包?WireShark 过滤语法...
  2. 9.Java SE 集合
  3. win7计算机服务项,新萝卜家园win7旗舰版服务项的详解
  4. 密码 加盐处理 是什么
  5. 第四章 账号权限管理
  6. 造人先于造物——松下幸之助的人才观
  7. e1000网卡驱动第二天_3
  8. 考研政治与专业课总结(持续更新)
  9. ie浏览器不能能上网,但火狐等浏览器可以
  10. linux php-fpm配置,php-fpm配置