oss 服务端签名直传核心代码
OSS 相关配置
spring:cloud:alicloud:access-key: XXXXXXXsecret-key: XXXXXXXoss:endpoint: XXXXXXXbucket: pingmoweb
OssController
package com.hdb.pingmoweb.thirdparty.controller;import com.aliyun.oss.OSS;
import com.aliyun.oss.common.utils.BinaryUtil;
import com.aliyun.oss.model.MatchMode;
import com.aliyun.oss.model.PolicyConditions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;@RestController
public class OssController {@Autowiredprivate OSS ossClient;@Value("${spring.cloud.alicloud.access-key}")private String accessKey;@Value("${spring.cloud.alicloud.oss.endpoint}")private String endpoint;@Value("${spring.cloud.alicloud.oss.bucket}")private String bucket;@RequestMapping("/oss/policy")public Map<String, String> policy() {String accessId = accessKey;String host = "https://" + bucket + "." + endpoint;String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date());String dir = format + "/";// 创建ossClient实例。//OSS ossClient = new OSSClientBuilder().build(endpoint, accessId, accessKey);try {long expireTime = 30;long expireEndTime = System.currentTimeMillis() + expireTime * 1000;Date expiration = new Date(expireEndTime);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);Map<String, String> 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));return respMap;} catch (Exception e) {// Assert.fail(e.getMessage());System.out.println(e.getMessage());}return null;}
}
oss 服务端签名直传核心代码相关推荐
- oss服务端签名后直传分析与代码实现
文章目录 1.简介 1.1 普通上传方式 1.2 服务端签名后直传 3.服务端签名后直传文档 3.1 用户向应用服务器请求上传Policy和回调. 3.2 应用服务器返回上传Policy和签名给用户. ...
- 阿里云OSS服务端签名前端JS直传(php)示例
阿里云OSS服务端签名后前端JS直传(php)示例 需求:服务端上传图片太慢,需要使用前端直传的方式.但前端把阿里云的 AccessKey ID 和 AccessKey Secret 放在前端文件中会 ...
- 阿里云OSS 服务端签名后直传之分片上传(结合element-ui的upload组件)
分片上传(结合element-ui的upload组件实现自定义上传) async uploadFree(content){let data = await this.getOssToken(); // ...
- 微信小程序:阿里云OSS直传实践-PHP实现服务端签名
目录 1.阿里云OSS上传方式 1.1.Web端Browser.js SDK直传(不推荐) 1.2.Web端上传服务端再上传至OSS 1.3.服务端签名后Web端直传(推荐) 2.PHP服务端生成签名 ...
- 【OSS】服务端签名后直传实现阿里云存储上传文件
文章目录 1.前言 2.阿里云OSS 2.1.开通服务 2.2.创建Bucket 2.3.创建子账户 3.服务端 3.1.依赖导入 3.2.配置文件 3.3.控制器编写 3.4.接口测试 4.前端联调 ...
- 商城项目09_品牌管理菜单、快速显示开关、阿里云进行文件上传、结合Alibaba管理OSS、服务端签名后直传
文章目录 ①. 品牌管理菜单 ②. 快速显示开关 ③. 阿里云上传概述 ④. 使用代码进行文件上传 ⑤. 结合Alibaba来管理oss ⑥. gulimall-third-party微服务 ⑦. 服 ...
- 阿里云oss文件上传(简单上传、服务端签名后直传)
前置: 自行开通阿里oss服务: https://www.aliyun.com/product/oss?spm=a2c4g.11174283.J_8058803260.125.d9387da2TjNf ...
- 分布式电商项目二十六:使用阿里云存储的服务端签名后直传(前端联调)
使用阿里云存储的服务端签名后直传(前端联调) 在前端显示上传的界面,可以根据人人fast-vue的结构,在src\components目录下添加upload文件夹,直接添加vue组件即可,总计三个组件 ...
- react服务端/客户端,同构代码心得
FKP-REST是一套全栈javascript框架 react服务端/客户端,同构代码心得 作者:webkixi react服务端/客户端,同构代码心得 服务端,客户端同构一套代码,大前端的梦想,为了 ...
最新文章
- 2019牛客暑期多校训练营(第五场)G-subsequence 1
- HtmlAgilityPack 抓取页面的乱码处理
- kubectl bash补全
- 不一样的图片加载方式
- 如何在 SAP Spartacus 里添加自定义页面 - Custom Page
- easy ui dialog 关闭之后的怪异问题
- 23种设计模式(9):访问者模式(转)
- 快速排序时间复杂度分析推导
- 顺通鞋业鞋厂仓库库存管理系统软件
- php超小免杀大马_PHP免杀大马的奇淫技巧
- 数据仓库是如何分层的?
- 美团/饿了么外卖红包小程序源码
- 转专业申请麦吉尔大学计算机,我在麦吉尔大学学习数学专业……
- Spring学习(二)IOC
- 给学妹学弟们的看书小建议!
- 利用javascript实现表格数据自动从剪贴板录入
- 天宝营养冲刺深交所IPO:业绩明显波动,深创投是股东
- OMAP850 运行android
- 【ros】初学ROS的学习笔记——创建Publisher
- 网易2018校园招聘编程题真题集合1魔法币