云存储-阿里云对象存储

一、概念

单体项目与分布式项目对比

上传方式

二、开通

注册并实名

三、开通对象存储,并创建新Bucket

3.1 创建Bucket

一个项目对应一个bucket

3.2 SDK选择

JAVA-SDK文档

3.3 创建子账号


3.4 账号授权


四、使用

4.1 引入依赖

<!--        阿里云oss存储服务--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alicloud-oss</artifactId></dependency>

4.2 application.yml

五、创建第三方服务微服务

5.1 创建

gulimall-third-party

5.2 引入父依赖和common依赖,oss依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jyyy.gulimall</groupId><artifactId>gulimall</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>gulimall-third-party</artifactId><version>0.0.1-SNAPSHOT</version><name>gulimall-third-party</name><description>第三方服务整合</description><properties><java.version>8</java.version></properties><dependencies><dependency><groupId>com.jyyy.gulimall</groupId><artifactId>gulimall-common</artifactId><version>0.0.1-SNAPSHOT</version>
<!--            没用到,排除,不然还要配置--><exclusions><exclusion><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></exclusion></exclusions></dependency><!--        阿里云对象服务--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alicloud-oss</artifactId><version>2.2.0.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

5.3 配置nacos

创建命名空间

创建application.yml

一般发现注册服务定义在application.yaml(先注册后配置)

创建bootstrap.yaml

配置中心的服务定义在bootstrap.yaml

spring:application:name: gulimall-third-partycloud:nacos:config:server-addr: 192.168.33.10:8848file-extension: yamlnamespace: 633b9573-ac72-4d21-ac43-1376a417c911## 拓展配置extension-configs:- data-id: oss.yaml #带后缀不用file-extensiongroup: DEFAULT_GROUP # 自定义data-id所在的组refresh: true # 自定义是否动态刷新

六、服务端签名接口

文档

6.1 创建OssController

@RestController
public class OssController {@AutowiredOSS ossClient;// 从配置文件动态读取@Value("${spring.cloud.alicloud.oss.endpoint}")private String endpoint;@Value("${spring.cloud.alicloud.oss.bucket}")private String bucket;@Value("${spring.cloud.alicloud.access-key}")private String accessId;@RequestMapping("/oss/policy")public R policy(){//https://gulimall-hello.oss-cn-beijing.aliyuncs.com/hahaha.jpg  host的格式为 bucketname.endpointString host = "https://"+bucket+"."+endpoint;// 自定义日期格式文件夹String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date());// 用户上传文件时指定的前缀, 每一天产生一个文件夹String dir = format + "/";Map<String, String> respMap = null;try{long expireTime = 30;long expireEndTime = System.currentTimeMillis() + expireTime * 1000;    // 过期时间30秒Date expiration = new Date(expireEndTime);PolicyConditions policyConds = new PolicyConditions();// PostObject请求最大可支持的文件大小为1048576000,即CONTENT_LENGTH_RANGE为1048576000。policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000);policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);// 生成签名String postPolicy = ossClient.generatePostPolicy(expiration, policyConds);byte[] binaryData = postPolicy.getBytes(StandardCharsets.UTF_8);String encodedPolicy = BinaryUtil.toBase64String(binaryData);String postSignature = ossClient.calculatePostSignature(postPolicy);respMap = new LinkedHashMap<String, String>();// AKrespMap.put("accessid", accessId);// 用户表单上传的策略(Policy)respMap.put("policy", encodedPolicy);// 签名respMap.put("signature", postSignature);// 上传文件时指定的前缀respMap.put("dir", dir);// oss保存文件的hostrespMap.put("host", host);// 过期时间respMap.put("expire", String.valueOf(expireEndTime / 1000));}catch (Exception e){System.out.println(e.getMessage());}finally {// 关闭oss客户端流ossClient.shutdown();}return R.ok().put("data",respMap);}
}

七、使用网关服务统一接入

spring:application:name: gulimall-gatewaycloud:nacos:discovery:server-addr: 192.168.33.10:8848gateway:routes:- id: product_routeuri: lb://gulimall-productpredicates:- Path=/api/product/**filters:- RewritePath=/api/(?<segment>.*),/$\{segment}#        优先级比renrenfast高,放前面,不然被拦截- id: third_party_routeuri: lb://gulimall-third-partypredicates:- Path=/api/third-party/**filters:- RewritePath=/api/third-party/(?<segment>.*),/$\{segment}- id: admin_routeuri: lb://renren-fastpredicates:- Path=/api/**filters:- RewritePath=/api/(?<segment>.*),/renren-fast/$\{segment}server:port: 88

八、解决跨域问题

云储存-阿里云对象存储相关推荐

  1. 不用服务器,用对象存储打开网站,腾讯云,阿里云,静态网站,中文域名

    对象存储,在文件列表页面,上传文件,index.html,error.html,在权限管理,存储桶访问权限,设置公共读写.在基础配置,静态网站,开启.在域名与传输管理页面,自定义源站域名,绑定自定义域 ...

  2. 一个集成阿里云、腾讯云、七牛云对象存储的SDK

    概述 一个集成阿里云.腾讯云.七牛云对象存储的SDK An SDK integrating Alibaba cloud, Tencent cloud and qiniu cloud object st ...

  3. 如何云储存服务实现视频存储

    如何云储存服务实现视频存储 为了方便直播/监控用户使用云存储产品来存储音视频数据,阿里云的云存储(简称OSS)产品近期推出了RTMP收流功能.用户可以直接用RTMP协议将音视频数据上传到云存储OSS. ...

  4. 阿里OSS对象存储,实现图片上传进度显示ProgressListener;

    想了解阿里OSS对象存储,实现图片上传的内容的可看我的另一篇博客,博客中有完整代码,这篇博客是以上一篇阿里OSS对象存储博客为基础,只写一些与进度有关的内容,细心往下看js代码中有需要注意的地方! 实 ...

  5. 游戏行业如何上云?阿里云架构师解读四大主流游戏架构

    游戏行业是阿里云最早聚焦的行业之一,近年来游戏行业的变化.云计算产品技术的变化都与日俱进.随着行业业务的变化.技术架构的演进以及阿里云产品的迭代演进,整体的产品技术选型在不同的游戏场景.业务场景也不尽 ...

  6. 秒云获得阿里云首批产品生态集成认证,携手共建云原生智能运维生态服务

    近日,成都元来云志科技有限公司(以下简称"秒云")的云原生智能运维中台产品与阿里云计算有限公司(以下简称"阿里云")的阿里云容器服务ACK经过严格测试程序,完成 ...

  7. 阿里oss对象存储使用、阿里oss对象存储用法

    阿里oss对象存储开通配置参照:https://blog.csdn.net/weixin_42257984/article/details/124684867 https://blog.csdn.ne ...

  8. 大规模文件存储怎么办?10分钟学会阿里OSS对象存储

    一. 前言 最近有很多小伙伴问健哥,如果我们要进行大规模的文件存储该怎么做? 其实实现文件存储的技术有很多,如果我们在网上搜索一下,你会发现实现的技术简直是五花八门,比如有一种技术叫FastDFS就可 ...

  9. 购买云服务器选择阿里云的理由(个人见解)

    本文从阿里云服务器弹性优势.价格.口碑以及老用户福利等方面讲述了用户购买云服务器选择阿里云的理由,个人见解,仅供参考! 随着云计算这几年的发展日趋成熟,云服务器产品已经非常流行, 不管是建站还是部署A ...

最新文章

  1. OpenCV——图像的平移旋转
  2. 容器使用之vector
  3. 企业如何培养出得力的下属?
  4. JavaScript要点 (二) 使用误区
  5. numpy np.sort()函数(指定对某一轴进行排序,返回数组的排序副本)(成对数组不要用这个排,用哪个啥lexsort()或argsort()都行)
  6. Android 获取系统语言(兼容7.0)
  7. Nmap参数--探索网络
  8. springAop和AspectJ的关系
  9. netflix会员和非会员的区别_Netflix开放10部作品免费给非会员试看
  10. (小白)系统盘制作(WPE工具箱)及镜像下载
  11. jsp1201高校实习实训系统
  12. 基于matlab的负反馈仿真,MATLAB的单闭环转速负反馈直流调速系统仿真
  13. 开源软件管理调研报告
  14. gg修改器修改内购_僵尸炮艇生存修改金币教程
  15. c++获取电脑mac地址
  16. Activity启动过程源码流程梳理和解读
  17. android爱汽车破解密码,汽车报价大全app sign解密过程
  18. 基于SPI的OLED显示
  19. 微信引流的万能方法 微信引流的万能方法
  20. arccotx图像在matlab,反三角函数图像与性质是什么?

热门文章

  1. 利用光纤通信技术解决社会问题调研报告
  2. LeetCode刷题记录02——新手村专辑(一)
  3. 网络新系统客户端常见问题及解决方案
  4. openssl之EVP
  5. 2020年十个强大的数据建模工具
  6. 使用HTML制作静态网站:传统文化戏剧锡剧带psd设计图(2个页面)
  7. 记一次http下载0KB问题的解决
  8. OSAL移植到STM8
  9. 【小甲鱼C语言】课后笔记第一章第一节——打印(printf)
  10. 如何解决Package ‘zipp’ requires a different Python: 3.5.2 not in '=3.6