文章目录

  • 1、对象存储阿里云OSS
  • 2、前期准备工作
  • 3、文件上传接口代码

1、对象存储阿里云OSS

用户认证功能 需要上传证件图片、首页轮播也需要上传图片,因此我们要做文件服务,阿里云oss是一个很好的分布式文件服务系统,所以我们只需要集成阿里云oss即可,也就是说我们通过阿里云OSS进行证件图片的存储

这篇文章不会具体讲解具体阿里云OSS服务如何开通,但开通的步骤大致如下:

  1. 申请阿里云账号
  2. 实名认证
  3. 开通“对象存储OSS”服务
  4. 进入管理控制台

2、前期准备工作

首先申请完成之后,我们可以拿到OSS提供的配置属性,我们将其添加到配置文件中:

# 阿里云 OSS
aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com
aliyun.oss.file.keyId=LTAI5tNNAJaG7LbirmZGHbkr
aliyun.oss.file.keysecret=mFPBxhwC4NWrSJ8JKB3K0fveMTEuL2
# bucket可以在控制台创建,也可以使用java代码创建
aliyun.oss.file.bucketname=xuzhibin-bucket

由于上面四个属性,在接下来的代码中会进行使用,我们编写一个配置类用于读取上述四个属性:

@Component
public class ConstantOssPropertiesUtils implements InitializingBean {@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;public static String EDNPOINT;public static String ACCESS_KEY_ID;public static String SECRECT;public static String BUCKET;@Overridepublic void afterPropertiesSet() throws Exception {EDNPOINT=endpoint;ACCESS_KEY_ID=accessKeyId;SECRECT=secret;BUCKET=bucket;}
}

我们需要通过OSS进行图片上传存储,此时需要引入OSS中一个概念,就是 Bucket,这个可以理解为文件对象存储空间,我们上传的图片数据就是存储在OSS中的Bucket,官方文档提供了具体的创建代码:

存储空间Bucket创建出来后,我们就可以参照阿里云官方文档,完成图片文件上传功能,参考文档代码如下:

3、文件上传接口代码

Controller:

/*** 文件上传*/
@RestController
@RequestMapping("/eduoss/fileoss")
public class OssController {@Autowiredprivate OssService ossService;/*** 上传头像*/@PostMappingpublic R uploadOssFile(MultipartFile file) {//返回上传后的图片路径String url = ossService.uploadFileAvatar(file);return R.ok().data("url", url);}
}

Service:

@Service
public class OssServiceImpl implements OssService {/*** 上传图片** @param file* @return*/@Overridepublic String uploadFileAvatar(MultipartFile file) {//oss相关配置String endpoint = ConstantPropertiesUtils.END_POINT;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;// 将上传的图片,按照日期分类String datePath = new DateTime().toString("yyyy/MM/dd");fileName = datePath + "/" + fileName;// 进行上传:1:bucket名称,2:oss路径和文件名称 3.输入流ossClient.putObject(bucketName, fileName, inputStream);// 关闭OSSClient。ossClient.shutdown();// 最终把url返回给前端String url = "https://" + bucketName + "." + endpoint + "/" + fileName;return url;} catch (Exception e) {e.printStackTrace();return null;}}
}

【谷粒学院】通过对象存储OSS上传图片相关推荐

  1. 阿里云对象存储oss上传图片及删除

    首先要确定RAM访问控制的用户添加了oss权限 添加依赖 <dependency><groupId>com.aliyun.oss</groupId><arti ...

  2. 【Python】阿里云对象存储OSS图床上传图片

    [预先准备] 首先需要在阿里云购买「对象存储OSS」服务,假设已经开通服务 首先创建Bucket: 名称要做到全局唯一,最终图床的链接就是以这里的命名开头 地域如果有特殊需求可修改其他位置 存储类型一 ...

  3. Java实现上传图片到阿里云对象存储OSS

    目录 1.阿里云配置 1.1 新建bucket 2.配置信息 2.1 进行测试 2.2 测试结果 1.阿里云配置 没有阿里云账号的先去注册一个,或者用支付宝账号登录,到管理控制台点击开通oss对象存储 ...

  4. 谷粒学苑项目实战(九):实现阿里云对象存储OSS功能

    目录 一.开通阿里云对象存储OSS 二.创建bucket 三.创建操作阿里云OSS许可证 四.用代码实现头像上传功能 五.引入相关依赖 六.创建properties配置文件 七.创建主启动类 八.启动 ...

  5. 谷粒学院项目笔记6——oss、EasyExcel、课程分类、nginx

    尚硅谷谷粒学院项目第六天内容之对象存储oss服务.使用EasyExcel添加课程分类功能.课程列表分类.ningx的使用 对象存储oss 打开阿里云官网--对象存储--oss管理控制台 创建bucke ...

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

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

  7. 【Gulimall+】第三方服务:对象存储OSS、短信验证、社交登录、支付宝支付

    文章目录 对象存储OSS 基本配置 java实现 短信认证 前端验证码倒计时 整合短信验证码 密码存储 社交登录:微博 基本流程 java实现 支付宝支付 基本配置 java实现 对象存储OSS 一谈 ...

  8. springboot整合阿里云对象存储oss

    知识梳理: 今天要学的知识很实用,一个合格的项目里面肯定会用到这个技术,那就是文件上传,文件上传可以帮我们上传头像.excel表格.等,用过文件上传的小伙伴都是文件上传到哪里去呢?本人第一次上传文件是 ...

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

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

  10. 对象存储OSS(微信小程序直传实践)

    对象存储OSS(微信小程序直传实践) 一.配置Bucket跨域访问 客户端进行表单直传到OSS时,会从浏览器向OSS发送带有Origin的请求消息.OSS对带有Origin头的请求消息会进行跨域规则( ...

最新文章

  1. HBase-1.3.1 集群搭建
  2. matlab数据无量纲化_MATLAB数据预处理——归一化和标准化
  3. SAP 如何看某个TR是否传入了Q或者P系统?
  4. vs mysql搭建_VS+mysql+EF搭建
  5. java基础----IO字节流
  6. 在windows下运行spark
  7. 关于csgo的观看录像fps低_CSGO:Ququ带队击败LQ豪取五连冠,8次MVP闪耀全场
  8. Linux cpu 占用率高问题查询
  9. ubuntu 编译 hercules 主机安装 z/OS 教程
  10. 如何查看Windows7系统版本
  11. 使用ExtJS创建前端WebQQ界面
  12. JavaWeb面试题
  13. 资深3D游戏建模师的酸甜苦辣
  14. c语言 节日,农历阳历之间转换和节气节日查询C语言编程
  15. 语音识别(ASR)论文优选:A comparison of streaming models and data augmentation methods for robust speech recog
  16. 雅利安人覆灭了世界三大文明,为何单单在商朝被斩首两万?
  17. 《金蝶ERP-K/3完全使用详解》—— 导读
  18. 《Head First Java (中文第二版)》勘误
  19. go juju/ratelimit 简单使用示例
  20. eai java,EAI与SOA

热门文章

  1. java外文书籍下载_Web开发经典技术图书(英文版居多),欢迎下载阅读 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  2. 使用Origin绘制柱状图(入门)
  3. 信息化建设中的IT规划精要
  4. 大作手操作体系:突破后回调不下箱体可加仓,但是也有失误的时候!
  5. java 刽子手游戏_刽子手游戏(Hangman Judge)
  6. windows 远程连接mongo_远程连接天下数据ADSL动态拨号VPS教程(windows)
  7. 移动营业厅办业务发现的几个需改问题(转
  8. 腾讯即将发布区块链游戏,网友大呼求别再养猫养狗了!
  9. gerrit常见错误与处理
  10. elasticsearch 更新数据 (部分字段更新)