在阿里云搜索对象存储oss,开通并进入到控制台

进入到控制台后,选择bucket列表然后创建bucket,bucket就类似文件夹

然后如果没有accesskey的要先创建,在右上角头像处

接下来就该敲代码了

先添加依赖

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

配置文件:oss配置见名知意,对应上述的accesskey的红框,bucket也对应开始创建的名字

# 服务端口
server.port=8205
# 服务名
spring.application.name=service-oss#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848aliyun.oss.endpoint=oss-cn-shenzhen.aliyuncs.com
aliyun.oss.accessKeyId=LTAI4G4SV6WtST7UYH776b64
aliyun.oss.secret=X9KHNYgztNr9MI5Zp8JffQPZO4uJo5
aliyun.oss.bucket=yygh-cccwm

启动类

 //取消数据源自动配置@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)@EnableDiscoveryClient@ComponentScan(basePackages = {"com.example"})public class ServiceOssApplication {public static void main(String[] args) {SpringApplication.run(ServiceOssApplication.class, args);}}

controller

 @RestController@RequestMapping("/api/oss/file")public class FileApiController {@Autowiredprivate FileService fileService;//上传文件到阿里云oss@PostMapping("fileUpload")public Result fileUpload(MultipartFile file) {//获取上传文件String url = fileService.upload(file);return Result.ok(url);}}

service以及serviceimpl

 public interface FileService {//上传文件到阿里云ossString upload(MultipartFile file);}
@Service
public class FileServiceImpl implements FileService {//调用配置文件中oss配置的值@Value("${aliyun.oss.endpoint}")private String endpoint;@Value("${aliyun.oss.accessKeyId}")private String accessKeyId;@Value("${aliyun.oss.secret}")private String accessKeySecret ;@Value("${aliyun.oss.bucket}")private String bucketName ;@Overridepublic String upload(MultipartFile file) {try {// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 上传文件流。InputStream inputStream = file.getInputStream();String fileName = file.getOriginalFilename();//生成随机唯一值,使用uuid,添加到文件名称里面,不会导致重名String uuid = UUID.randomUUID().toString().replaceAll("-","");fileName = uuid+fileName;//调用方法实现上传ossClient.putObject(bucketName, fileName, inputStream);// 关闭OSSClient。ossClient.shutdown();//上传之后文件路径// https://yygh-cccwm.oss-cn-shenzhen.aliyuncs.com/01.jpgString url = "https://"+bucketName+"."+endpoint+"/"+fileName;//返回return url;} catch (IOException e) {e.printStackTrace();return null;}}
}

下载接口也类似,可以参考阿里云的对象存储文档下载到本地文件 (aliyun.com)https://help.aliyun.com/document_detail/84824.html

后端实现上传文件接口,并使用阿里云的oss对象存储相关推荐

  1. 关于使用Karate-实现上传文件接口测试方法总结

    在API接口自动化测试过成中,经常会遇到上传文件的接口,那么在Karate框架中如何实现上传文件接口的自动化哪?今天我就将个人积累的小经验分享给大家: [如果大家对karate还不熟悉,请参考我之前的 ...

  2. Python请求上传文件接口

    Python 请求上传文件接口 def post_multipart_request():params = {"key1": "value1", "k ...

  3. nodejs + express + multiparty处理上传文件接口:踩坑及总结

    文章目录 一.简单的文件上传 模块 接口 二.multipart/form-data随着表单上传文件 前端 后端 1. multiparty 2.connect-multiparty 在平时工作和自己 ...

  4. python调用接口上传文件_python上传文件接口

    文件的参数组装: ('文件名',"open打开的文件(rb模式打开)",'文件的类型说明') 关于不同的请求参数类型,使用requests的处理: 1.文件上传(Content-T ...

  5. springboot调用python脚本_Springboot实现上传文件接口,使用python的requests进行组装报文上传文件的方法...

    记录瞬间 近段时间使用Springboot实现了文件的上传服务,但是在使用python的requests进行post上传时,总是报错. 比如: 1.Current request is not a m ...

  6. Postman调用上传文件接口提示Error: read ECONNRESET

    问题现象:Postman上传文件时,接口提示Error: read ECONNRESET 解决办法:上传的文件名不能是中文,换成英文试试 问题原因:未知

  7. Fiddler小技巧-测试上传文件接口多参数并传情况

    写了多年的API了,fidder还真是方便至极相对于postman来说. 两种常用方式: 抓包:app通过代理方式,就可以在pc端看到fidder的请求了 因为会监控好多跟我们需要的没关系的HTTP请 ...

  8. 云服务器上传文件怎么这么慢,百度云上传速度慢怎么办?教你如何加快百度云上传速度...

    现在有很多朋友使用百度网盘进行资料存储,但是上传和下载的速度却总是有些问题.最近有位朋友的百度网盘下载速度很快,但是上传速度很慢的时候,不知道为什么会这样.那么,这种情况应该如何解决呢?下面就来看一下 ...

  9. 云服务器上传文件怎么这么慢,百度云上传速度太慢怎么回事_百度云网盘上传速度太慢怎么解决-win7之家...

    百度云是百度推出的一项云存储服务,给用户们提供文件的网络备份.同步和分享服务,不过最近有用户发现百度云要上传资料的时候发现速度太慢了,这是怎么回事呢,针对这个问题,小编给大家讲解一下百度云网盘上传速度 ...

最新文章

  1. 「AI初识境」什么是深度学习成功的开始?参数初始化
  2. 【Linux 内核】实时调度类 ⑥ ( 实时调度类核心函数源码分析 | 插入进程到执行队列 | 从执行队列中选择优先级最高的进程 )
  3. Python基础(6)_函数
  4. 残缺棋盘的伪代码_伪激光雷达:无人驾驶的立体视觉
  5. Jetpack Compose学习笔记
  6. 牛客网(剑指offer) 第十六题 合并两个排序的链表
  7. Linux下PostgreSQL基础操作
  8. linux 目录权限及归属,Linux中如何设置目录或文件的归属及权限
  9. NetSetMan v5.0.5特别版
  10. wps h5制作软件
  11. (struct)结构体变量作为函数参数调用的方法小结
  12. JAVA 逆向工程技术研究日志
  13. win10安装ePLAN P8 2.7无法通过驱动精灵更新MultiUSB Key驱动问题的解决办法
  14. 弹力弹珠java_Java趣味小程序:打弹珠
  15. Python中json.loads()无法解析单引号字符串问题的两种解决方法
  16. 拼团返利电商系统(拼返系统)v2.6
  17. The Google File System 中文版论文(下)(转载)
  18. Laravel+Vue前后端分离项目(四)邮箱验证与滑动验证
  19. php实现邮箱激活功能
  20. OJ每日一练——羞涩的答复

热门文章

  1. amd为什么还用针脚_为啥AMD处理器没散片,而Intel却有,看完这张图就懂了
  2. JNI全流程实例使用总结
  3. 社区发现 SSN-LDA算法 学习笔记
  4. 鼠标不能用怎么办 USB OPTICAL MOUSE
  5. 硬盘插电脑上读不出来的解决方案
  6. 15位专业评委坐镇,ISC2020 创新独角兽-沙盒大赛(复赛)明日开拔!
  7. 2021-02-02 背包入门
  8. 关于Ubuntu18.04 自带网卡驱动不兼容主板r8125等网卡问题的解决办法
  9. 40个改变编程技能的小技巧
  10. Django项目实践(爬取今日头条的头条热榜)