目录

  • 阿里云OSS官方文档
  • 开通阿里云OSS服务
  • 入门使用
  • java代码上传文件至OSS
    • 1、准备工作:创建阿里云OSS许可证(获取对Api的访问权限)
      • 选择继续使用 AccessKey
      • 创建AccessKey
      • 创建成功
    • springBoot整合OSS
      • 依赖
      • 配置文件 application.yaml
      • 常量工具类
      • OssController
      • OssService
    • 效果
  • 结尾

阿里云OSS官方文档

官方文档

开通阿里云OSS服务

先进入控制台,点击菜单栏的对象存储 OSS,根据提示开通服务。

阿里云OSS 学习路径

入门使用

使用步骤

  1. 首先创建一个Bucket

  2. 使用OOS


3. 上传文件



java代码上传文件至OSS

API文档

1、准备工作:创建阿里云OSS许可证(获取对Api的访问权限)

选择继续使用 AccessKey

创建AccessKey

创建成功

springBoot整合OSS

依赖

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

配置文件 application.yaml

server:port: 8002
spring:application:name: service-ossprofiles:active: dev## 阿里云 OSS
aliyun:oss:file:endpoint: oss-cn-beijing.aliyuncs.com # 地域节点keyid: LTAI5tFNjjg1s5mxxDC6Rxc4 # AccessKeyIdkeysecret: fZvVNtbU8pNfmAxxx53jYXhMUVHOo8 # 密钥bucketname: edu-xiuyuan # bucket名字

常量工具类

package com.zlf.oss.utils;import lombok.Data;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** Created with IntelliJ IDEA.** @Auther: zlf* @Date: 2021/03/22/20:01* @Description: 读取常量的工具类*//*** InitializingBean 实现该接口 在SpringBoot项目初始化时会初始化将配置文件中的值赋给对应属性*/
@Component
public class ConstantPropertiesUtils implements InitializingBean {@Value("${aliyun.oss.file.endpoint}")private String endPoint;@Value("${aliyun.oss.file.keyid}")private String keyId;@Value("${aliyun.oss.file.keysecret}")private String keySecret;@Value("${aliyun.oss.file.bucketname}")private String bucketName;public static String END_POINT;public static String KEY_ID;public static String KEY_SECRET;public static String BUCKET_NAME;/*** @Description: 属性赋值后,会执行该方法初始化静态成员* @Param: []* @return: void* @Author: zlf* @Date: 2021/3/22*/@Overridepublic void afterPropertiesSet() throws Exception {END_POINT = endPoint;KEY_ID = keyId;KEY_SECRET = keySecret;BUCKET_NAME = bucketName;}
}

OssController

package com.zlf.oss.Controller;import com.zlf.commonutils.Response.R;
import com.zlf.oss.service.OssService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;/*** Created with IntelliJ IDEA.** @Auther: zlf* @Date: 2021/03/22/20:16* @Description: 阿里云oss  上传文件*/
@RestController
@RequestMapping("/eduOss/fileOss")
@CrossOrigin
@Api(description = "oss上传接口")
public class OssController {@Autowiredprivate OssService ossService;/*** @Description: 上传头像* @Param: [file]* @return: com.zlf.commonutils.Response.R* @Author: zlf* @Date: 2021/3/22*/@PostMapping("uploadFile")@ApiOperation("上传文件")public R uploadOssFile(@ApiParam(name = "file",value = "文件") MultipartFile file)  {//获取上传对象String url = null;try {url = ossService.uploadFileAvatar(file);} catch (IOException e) {e.printStackTrace();}return R.ok().data("url",url);}
}

OssService

package com.zlf.oss.service.impl;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSClientBuilder;
import com.zlf.oss.service.OssService;
import com.zlf.oss.utils.ConstantPropertiesUtils;
import com.zlf.servicebase.exceptionHandler.GlobalException;
import org.joda.time.DateTime;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.*;
import java.util.UUID;/*** Created with IntelliJ IDEA.** @Auther: zlf* @Date: 2021/03/22/20:15* @Description:*/
@Service
public class OssServiceImpl implements OssService {/*** @Description: 上传文件到阿里云oss* @Param: [file]* @return: 文件 url* @Author: zlf* @Date: 2021/3/22*/@Overridepublic String uploadFileAvatar(MultipartFile file)  {// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。String endpoint = ConstantPropertiesUtils.END_POINT;// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。String accessKeyId = ConstantPropertiesUtils.KEY_ID;String accessKeySecret = ConstantPropertiesUtils.KEY_SECRET;String bucketName = ConstantPropertiesUtils.BUCKET_NAME;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;// 按照时间日期进行分类 如 / 2021/03/22/xxx.jpgString datePath = new DateTime().toString("yyyy/MM/dd");fileName = datePath  +"/"+  fileName;// 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。以及上传文件的文件流ossClient.putObject(bucketName, fileName, inputStream);// 关闭OSSClient。ossClient.shutdown();//把上传路径返回 (手动拼接返回)//模板 https://edu-xiuyuan.oss-cn-beijing.aliyuncs.com/2021/03/20/%E6%96%B0%E6%A1%93%E7%BB%93%E8%A1%A3.pngString url = "https://"+ bucketName +"."+ endpoint + "/" +fileName;return url;}catch (Exception e){e.printStackTrace();return null;}}
}

详细的Api接口参考官方文档

效果


结尾

其他功能的实现请参考官方文档。

使用阿里云对象存储OSS收藏老婆新垣结衣日常照相关推荐

  1. spring boot上传阿里云对象存储OSS快速上手(一、控制台简介)

    代码实现请看下一篇: spring boot上传阿里云对象存储OSS快速上手(二.代码实现,复制粘贴可用) 简介: 1.阿里云对象存储OSS其实就是一个文件存储的服务 2.在我们的开发过程中会遇到类似 ...

  2. 如何结合PICgo,Typora以及阿里云对象存储OSS搭建自己图床写博客

    如何利用阿里云对象存储OSS搭建自己图床写博客 1.购买阿里云 购买链接 登录阿里云–>控制台–>对象存储OSS–购买 购买的时候可以选择按月付费一月一元的,也可以年费9元的,40GB作为 ...

  3. 阿里云对象存储OSS支持版本管理特性

    2019独角兽企业重金招聘Python工程师标准>>> 阿里云对象存储OSS现已经全面支持"对象版本管理"特性.该功能适用于所有的存储类型以及区域.当Bucket ...

  4. 阿里云对象存储OSS与文件存储NAS的区别

    一.简介 应用场景:选择一款存储产品,面向文档数据的存取,不会涉及到数据处理. 产品选型主要从OSS和NAS中选择一款,满足文档存储的需求. 二.NAS优缺点 NAS 是一种采用直接与网络介质相连的特 ...

  5. 开启阿里云对象存储OSS防误删新功能,保护您珍贵的数据。

    一.背景 阿里云对象存储 OSS 是保存海量数据的平台,支持丰富的应用.在使用过程中难免会遇到误操作.程序 Bug.覆盖写等导致数据被删除的场景,对于数据的丢失会非常着急,后果也非常严重,甚至某些情况 ...

  6. 阿里云对象存储OSS存储照片

    版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 概述 OSS可用于图片.音视频.日志等海量文件的存储.各种终端设备.Web网站程序.移动应用可 ...

  7. 关于阿里云对象存储OSS流量包说明

    阿里云对象存储OSS公网出方向流量是收费的,内网产生的流量或者公网入方向流量都是免费的,OSS流量计费方式分为按量付费和包年包月流量包两种计费模式,云吞铺子来详细说下阿里云对象存储OSS流量收费标准价 ...

  8. 阿里云对象存储OSS(Object Storage Service)

    文章目录 简介 endpoint:阿里云服务部署的地区位置 见解 开发步骤 配置文件 utils层(读取全局配置文件并赋值给类变量) service层 impl(基于oss驱动sdk实现类) cont ...

  9. 坑!阿里云对象存储OSS收费细则不只是存储还有其他扣费项

    阿里云对象存储OSS怎么收费?以为只收取存储费用,不只是存储费还有流量.跨区域复制.流量费.请求费.数据处理费用.对象标签费用.传输加速费用等,快看看别让钱花得不清不楚,云吞铺子来详细说下阿里云对象存 ...

最新文章

  1. 测试进度需要考虑的问题
  2. [转]DB2常用命令大全
  3. ipad如何连接电脑_ipad如何将电脑文件下载到本地?
  4. Mysql中的递归层次查询(父子查询)
  5. python统计字符串中字母个数字母无视大小写_判断一个字符串中字母的个数(无视大小写)...
  6. python读取多通道信号中的一个通道_RFID多通道读写器的具体应用
  7. mysql排序自段为字符串类型问题解决
  8. 无锁队列以及ABA问题
  9. 超级精简版/超精简/懂你版IDM 6.25 build 23推荐
  10. 【职场日语】日文简历模板
  11. 2021年第四届安洵杯WriteUp(转)
  12. 说说你对servlet 的理解或者 servlet 是什么?
  13. 带你理解 Hanoi 汉诺塔递归算法
  14. 谷歌内核浏览器无法下载文件的解决方法
  15. 苹果账号的分类以及注册免费苹果账号
  16. 计算机职业生涯规划范文网,计算机职业生涯规划书范文
  17. react项目中,使用.jsx和.js文件书写react代码时,这两者有什么差异性?
  18. 一张图读懂PBN飞越转弯衔接TF/CF航段计算
  19. 【STM32Cube】学习笔记(五):红外避障传感器
  20. wsl挂载及启动VScode异常问题总结

热门文章

  1. java并发编程——线程池的工作原理与源码解读
  2. 博弈论 斯坦福game theory stanford week 3.2_
  3. 每周一书-2016年8月28日到9月4日获奖读者公布
  4. GB/T 17710-1999 PHP生成校验码
  5. Intent, Bundle, ListView的简单使用
  6. 第五章(1)Libgdx应用框架之生命周期
  7. Java递归例子——求x的y幂次方
  8. 设计模式的功力长了!
  9. c 连接mysql错误信息_使用C语言访问MySQL数据 —— 连接和错误处理
  10. php ci框架 实例化类,php框架CI(codeigniter)自动加载与自主创建对象操作实例分析...