阿里云OSS对象存储

  • 认识OSS
    • 一、创建Bucket
    • 二、后台服务接口编写
    • 三、接口测试

认识OSS

 在实际的项目中,经常要用到上传图片的地方,阿里云的OSS对象存储,可以很好的将我们上传的图片存储到阿里云服务中,数据库只要存储图片的访问地址即可。下面我们主要来编写后台服务的OSS功能。前端的调用相关后续在讲。

一、创建Bucket

这里注册阿里云账号和已经开通OSS对象存储,这里就不再说了,网上有很多的文案。

1. 进入OSS的控制台,在Bucket 管理列表中,可以查看到自己的Bucket 数量,如果已经有了,则不要创建。没有的话,跟着我下面来创建一个Bucket 。
2. 点击创建Bucket ,进入到Bucket基本信息填写表单中。

3.基本信息填写

  • 【Bucket名称】 可以随意取,最好跟自己的项目名称有关系的名称,避免后面创建的Bucket多了分不清楚。
  • 【地域】可以任意选择,可以根据自己所在区域进行选择。
  • 【Endpoint】默认不可修改的,这个后面编写接口的时候要用到。
  • 【所属资源组】可以不选择。
  • 【存储类型】自己学习用的话,选择“低频访问选择”就可以,如果是企业项目的话,最好选择标准存储。后面的归档类型,主要是存放后就基本不访问的情况。我们这里选择“低频访问选择”。
  • 【HDFS服务】/【同城冗余存储】/【版本控制】这些都可以不用开启。
  • 【读写权限】选择“公共读”就可以,写的时候,后端接口会进行身份认证校验的。
  • 【服务端加密方式】/【实时日志查询】都可以不开通。

    创建成功后,就会显示在Bucket 列表中。

二、后台服务接口编写

官网帮助文档:https://help.aliyun.com/document_detail/32009.html
1.安装SDK: 官网提供了三种SKD的安装方式,这里我们使用maven的方式安装。

        <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version></dependency>

2.创建Access Key:在OSS存储对象首页概览中,最右侧中的常用入口有Access Key的入口。如果没有找到,或者在个人中心出的Access Key,也可以进入到Access Key设置页面。


进入会有提示窗口,选择继续即可。

进入到Access Key列表页面,如果创建过Access Key,可以直接使用,无需创建。如果没有,点击创建,进行验证码创建即可。
创建成功后,就会有AccessKey ID和AccessKeySecret,后面后用到。

3.OSS访问常量定义: 在进行文件上传的时候,需要身份的校验,因此我们需要把身份验证的相关信息,定义在配置文件中(yml/properties)。
这里主要用到的几个信息是:endpoint、accessKeyId、accessKeySecret、bucketName。

#配置阿里云oss
aliyun.oss.file.endpoint=你的自己’‘endpoint’‘
aliyun.oss.file.keyid=你自己的’‘accessKeyId’‘
aliyun.oss.file.keysecret=你自己的’‘accessKeySecret’‘
aliyun.oss.file.bucketname=你自己的’‘bucketName’‘

如果找不到【endpoint】信息的同学,可以进入你自己【Bucket 列表】,点击Bucket 名称进入到Bucket 的详情页面。选择【概览】,进入页面,下面就会有。选择外网访问中的Endpoint

4.上传逻辑代码:

  • 使用Value()注解,注入在配置文件中配的常量参数。
  • 在filename文件中,拼接了文件目录字符串,文件目录以每日的格式进行存储。(可选,如果不设置目录的话,所有的图片对象都全部存储在根目录)
  • 最后拼接图片访问的url,返回给前端,前端统一封装成实体类,提交给新增/跟新的接口。
@Service
public class OssServiceImpl implements OssService {@Value("${aliyun.oss.file.endpoint}")String endpoint;@Value("${aliyun.oss.file.keyid}")String accessKeyId;@Value("${aliyun.oss.file.keysecret}")String accessKeySecret;@Value("${aliyun.oss.file.bucketname}")String bucketName;@Overridepublic String uploadFile(MultipartFile file) {String dir = new SimpleDateFormat("yyyy-MM-dd").format(new Date());//获取文件名String filename = dir + "/" + file.getOriginalFilename();// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {//获取文件流InputStream inputStream = file.getInputStream();// 创建PutObject请求。ossClient.putObject(bucketName, filename, inputStream);//返回拼接后oss访问路径String url = "https://" + bucketName + "." + endpoint + "/" + filename;return url;} catch (OSSException oe) {System.out.println("Caught an OSSException, which means your request made it to OSS, "+ "but was rejected with an error response for some reason.");System.out.println("Error Message:" + oe.getErrorMessage());System.out.println("Error Code:" + oe.getErrorCode());System.out.println("Request ID:" + oe.getRequestId());System.out.println("Host ID:" + oe.getHostId());return null ;} catch (ClientException ce) {System.out.println("Caught an ClientException, which means the client encountered "+ "a serious internal problem while trying to communicate with OSS, "+ "such as not being able to access the network.");System.out.println("Error Message:" + ce.getMessage());return null;}  catch (IOException e) {e.printStackTrace();return null;} finally {if (ossClient != null) {ossClient.shutdown();}}}
}

三、接口测试

我这里集成了swagger,直接在swagger-ui中进行测试。

  • 重启服务成功。
  • 进入swagger-ui,上传图片后,提交。
  • 接口返回成功。
  • 进入OSS对象存储服务中,也现在了上传的图片。



后面我们只要访问这个URL就可以了。数据库只要存储这个地址。

阿里云OSS对象存储-图文详解相关推荐

  1. Java使用阿里云OSS对象存储上传图片

    示例说明   该案例是OSS Java SDK的示例程序,您可以修改endpoint.accessKeyId.accessKeySecret.bucketName后直接运行. 本示例中的并不包括OSS ...

  2. 阿里云OSS对象存储搭建网盘教程

    阿里云OSS对象存储高可靠数据存储服务,使用OSS对象存储搭建个人网盘或企业网盘,存储可靠性高下载不限速,当然阿里云推出了自家的网盘,码笔记分享使用OSS对象存储搭建个人网盘或企业网盘的方法: 使用O ...

  3. java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS

    继续上一章文章,这次要操作的是,浏览器请求服务要到签名后直传给OSS对象存储. 1.写好服务端的方法,传给前台相应的密钥 @Resource OSSClient ossClient; @Value(& ...

  4. 宝塔面板如何将数据自动备份到阿里云OSS对象存储

    首先我们需要购买阿里云OSS对象存储的容量包,价格一般不贵. 操作步骤: 先新建一个bucket,也叫做桶,用来装你的备份数据,权限设置为私有. 接着,在宝塔面板后台安装阿里云OSS,填写相关信息 接 ...

  5. 【阿里云OSS对象存储搭配CDN加速使用】

    阿里云OSS对象存储搭配CDN加速使用 什么是CDN? 为什么选择阿里云CDN? 按流量计费说明 CDN按流量计费费如下: OSS外网流出流量标准收费如下: 步骤一:准备工作 步骤二.开通CDN 涉及 ...

  6. 【Typora图床设置】Typora图片上传和阿里云OSS对象存储

    问题描述 因为Typora是纯文本编辑器,所以无法导入图片,但是可以显示图片.换句话说,Typora文档中保存的图片实际上是图片的存储地址,Typora会根据这个地址来显示图片.我们在使用Typora ...

  7. 阿里云oss对象存储实现自定义域名

    阿里云oss对象存储实现自定义域名 阿里云OSS配置域名 创建bucket 选择bucket,找到对应的域名管理,绑定用户域名 测试是否成功 参考博客 阿里云OSS域名配置及简单上传

  8. 5分钟解决阿里云oss对象存储

    5分钟解决阿里云OSS对象存储 后附关键代码 启动代码如下: pom.xml里添加依赖 com.aliyun.oss aliyun-sdk-oss 2.8.3 1.建类AliyunOSSClientU ...

  9. 6、阿里云OSS对象存储手把手学习及企业使用方案

    文章目录 1.什么是分布式文件系统 2.图片存储解决方案 3.阿里云OSS对象存储 3.1.开通oss访问 3.2.购买服务 3.3.基本概念 3.4.创建一个bucket 3.5.创建AccessK ...

最新文章

  1. 设python中有模块m_关于 Python 命令中的 -m 参数(转帖)
  2. 面试让你手写SQL的时候,你慌了没?
  3. 电脑任务组层叠窗口设置方法
  4. 随便选一张扑克牌_扑克牌魔术手法教学,简单易学的纸牌魔术,三分钟让你成为大师...
  5. 可编辑的表格:jQuery+PHP实现实时编辑表格字段内容
  6. 为什么好多公司的开发语言从C#变成了JAVA
  7. 一只火鸡带你了解大数据预测(经典)
  8. Oracle建立用户和表空间
  9. 魔兽世界服务器卡顿原理,魔兽世界9.0卡顿解决办法
  10. 深度学习入门之猫vs狗(超简单)
  11. 常用端口号与对应的服务
  12. Java - GC是什么?为什么要有GC?
  13. 汉诺塔python创新设计大赛_机械创新设计大赛官网
  14. 360影视大全 python_「www.dy2018.com」python爬取电影天堂(www.dy2018.com)所有视屏的所有链接 - 金橙教程网...
  15. 90后都开始养生了,你怎么能少了这本宝典丨钛空舱
  16. XShell免费版的安装配置教程以及使用教程
  17. 808计算机基础考试时间,成都信息工程大学808计算机基础2020年考研大纲
  18. PS一次性导出多倍图@1x、@2x、@3x
  19. 13 MATLAB 三维图形绘制
  20. linux C之alarm函数(更改)

热门文章

  1. selenium自动化测试-鼠标键盘操作
  2. 如何配置linux下的防火墙,如何配置linux下的防火墙?
  3. 使用Ajax进行前后端交互(一)
  4. 认证认可机构收费项目和标准
  5. 相约3.8!罗.姆EEPROM在线研讨会
  6. excel整列动态联动下拉_在Excel下拉列表中显示多列
  7. 语义分割|学习记录(4)膨胀卷积(空洞卷积 )
  8. python 解决问题的集合-No JSON object could be decoded
  9. Mac环境下Tron 部署教程
  10. ps -ef命令含义