继续上一章文章,这次要操作的是,浏览器请求服务要到签名后直传给OSS对象存储。

1、写好服务端的方法,传给前台相应的密钥

    @Resource    OSSClient 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 Map<String, String> policy(){        String host = "https://" + bucket + "." + endpoint; // host的格式为 bucketname.endpoint        // callbackUrl为 上传回调服务器的URL,请将下面的IP和Port配置为您自己的真实信息。//        String callbackUrl = "http://88.88.88.88:8888";        String format = new SimpleDateFormat().format(new Date());        String dir = format+"/"; // 用户上传文件时指定的前缀。        Map<String, String>respMap =null;        try {            long expireTime = 30;            long expireEndTime = System.currentTimeMillis() + expireTime * 1000;            Date expiration = new Date(expireEndTime);            // PostObject请求最大可支持的文件大小为5 GB,即CONTENT_LENGTH_RANGE为5*1024*1024*1024。            PolicyConditions policyConds = new PolicyConditions();            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("utf-8");            String encodedPolicy = BinaryUtil.toBase64String(binaryData);            String postSignature = ossClient.calculatePostSignature(postPolicy);            respMap = new LinkedHashMap<String, String>();            respMap.put("accessid", accessId);            respMap.put("policy", encodedPolicy);            respMap.put("signature", postSignature);            respMap.put("dir", dir);            respMap.put("host", host);            respMap.put("expire", String.valueOf(expireEndTime / 1000));            // respMap.put("expire", formatISO8601Date(expiration));        } catch (Exception e) {            // Assert.fail(e.getMessage());            System.out.println(e.getMessage());        } finally {            ossClient.shutdown();        }        return respMap;    }

目前此方法已经成功。

2、接下来配置我们的网关gateway,使它的前缀要统一,比如:127.0.0.1:88/api/phirdparty/oss/policy这个路径,那就开始操作吧~~

spring:  cloud:    gateway:      routes:        - id: third_party_route          #lb俗称负载均衡(loadBlance)          uri: lb://dadamall-third-party          #断言          predicates:            - Path=/api/thirdparty/**          #能够重写路径的地址  或是加 或是减的          filters:            - RewritePath=/api/thirdparty/(?/?.*),/$\{segment}

3、接下来开始前端调,在使用第三方组件引用的时候需要先引包

  import SingleUpload from "@/components/upload/singleUpload";

引包之后还有说明一下需要用那些组件

  export default {    components:{SingleUpload},  }

配置好之后可以使用自定义的标签了

<single-upload v-model="dataForm.logo">single-upload>

4、最后会出现403请求跨域问题,该问题是阿里云OSS对象存储的跨域问题需要自己配置。

5、最后上成功图一张~~

以上是我的个人笔记,探索未知密宝,记录学习笔记,分享有趣的故事,欢迎大家来访!

java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS相关推荐

  1. 阿里云oss文件上传(简单上传、服务端签名后直传)

    前置: 自行开通阿里oss服务: https://www.aliyun.com/product/oss?spm=a2c4g.11174283.J_8058803260.125.d9387da2TjNf ...

  2. 商城项目09_品牌管理菜单、快速显示开关、阿里云进行文件上传、结合Alibaba管理OSS、服务端签名后直传

    文章目录 ①. 品牌管理菜单 ②. 快速显示开关 ③. 阿里云上传概述 ④. 使用代码进行文件上传 ⑤. 结合Alibaba来管理oss ⑥. gulimall-third-party微服务 ⑦. 服 ...

  3. 分布式电商项目二十六:使用阿里云存储的服务端签名后直传(前端联调)

    使用阿里云存储的服务端签名后直传(前端联调) 在前端显示上传的界面,可以根据人人fast-vue的结构,在src\components目录下添加upload文件夹,直接添加vue组件即可,总计三个组件 ...

  4. oss服务端签名后直传分析与代码实现

    文章目录 1.简介 1.1 普通上传方式 1.2 服务端签名后直传 3.服务端签名后直传文档 3.1 用户向应用服务器请求上传Policy和回调. 3.2 应用服务器返回上传Policy和签名给用户. ...

  5. 【OSS】服务端签名后直传实现阿里云存储上传文件

    文章目录 1.前言 2.阿里云OSS 2.1.开通服务 2.2.创建Bucket 2.3.创建子账户 3.服务端 3.1.依赖导入 3.2.配置文件 3.3.控制器编写 3.4.接口测试 4.前端联调 ...

  6. 阿里云OSS 服务端签名后直传之分片上传(结合element-ui的upload组件)

    分片上传(结合element-ui的upload组件实现自定义上传) async uploadFree(content){let data = await this.getOssToken(); // ...

  7. 如何使用阿里云国际对象存储服务自动备份

    异地备份是一项重要的安全措施.它们允许在发生硬件故障.意外删除或任何其他灾难性事件时还原数据.自动备份可提高备份过程的可靠性,并确保定期备份最近的数据. 有关阿里云国际对象存储服务自动备份的操作,今天 ...

  8. YII2调用天翼云OOS 对象存储服务

    前言 本文仅适用于新接触对象存储服务开发的新人,对于非常熟悉对象开发的人来说会发现其实都一样,网上有很多阿里云Oss的开发教程,甚至有composer 的安装方法,非常方便,但是如果新人接触对象存储开 ...

  9. 开通阿里云的对象存储服务OSS

    1. 从菜单找到对象存储服务 2. 管理控制台 3. 创建Bucket 4. 获取对应SDK https://help.aliyun.com/document_detail/32013.html?sp ...

最新文章

  1. MinGW问题解决:gcc: installation problem, cannot exec `cc1'
  2. Android 省,市,区选择权
  3. SAP Hybris Enterprise Commerce Platform ECP和SAP CRM架构比较
  4. 一起谈.NET技术,WPF Ribbon 开发资料分享
  5. CorelDraw x4无法打开的解决方法
  6. Java-前后端分离-单点登录(SSO二级跨域和跨一级域名)
  7. 吃鸡游戏计算机配置,三款畅玩“吃鸡”游戏电脑配置推荐
  8. android wifi音箱,(原创)图文并茂教程,手把手教你用安卓手机当电脑的无线扬声器(喇叭)...
  9. 【生信分析】基于TCGA肿瘤数据进行基因共表达网络分析
  10. 有赞 CTO 崔玉松:我想打造出中国最好的技术团队
  11. 跑跑飞弹室外跑步AR游戏代码方案设计
  12. 基于Eclipse+Java+Swing+Mysql图书信息管理系统
  13. logit回归怎么看显著性_SPSS:Logistic回归(Logistic regression)概述
  14. HIDS常见功能要求
  15. pytonh mysql_python操作Mysql实例代码教程(查询手册)
  16. 类加载初始化顺序(nullpoint异常)
  17. 函数的连续性和间断点——“高等数学”
  18. ISO27001 LA学习纪录
  19. KVM虚拟化技术(三)之克隆虚拟机
  20. ANDROID动态加载 使用SO库时要注意的一些问题

热门文章

  1. curator分布式锁的基本使用
  2. 并发的发展历史-线程的出现
  3. 策略模式在JDK 源码中的体现
  4. 关于Spring AOP代理的生成过程
  5. 使用JDK Logging - Java异常处理
  6. ORACLE ROWNUM用法、select into与insert into区别、merge into的使用、递归查询
  7. Dubbo-HelloWorld
  8. 解决在 IntelliJ IDEA 中,输入代码时突然不会自动显示下拉框提示
  9. 【报错笔记】Navicat连接数据库显示2003错误,无法连接到数据库
  10. enum 使用规范及技巧(C# 参考)