当前位置: 首页 > news >正文

阿里云用STS上传oss的完整程序执行流程图 和前端需要哪些参数uniapp

H5 微信小程序可用的前端直传阿里云OSS(STS临时凭证+前端签名)直接下载插件

下面是原理说明:
在这里插入图片描述

明白了,我来详细说明前端上传文件到阿里云OSS需要携带的具体参数:

  1. 从服务器获取的 STS 凭证:
    在这里插入图片描述
// 这些参数需要从你的后端服务器获取
{accessKeyId: "STS.xxxx",     // STS临时访问密钥IDaccessKeySecret: "yyyy",      // STS临时访问密钥SecretsecurityToken: "zzzz",       // STS安全令牌expiration: "2024-10-24T12:00:00Z"  // 过期时间
}
  1. 上传文件时实际发送给阿里云的表单数据:
formData: {// 必须参数'key': 'uploads/example.jpg',           // 文件存储的路径+名称'OSSAccessKeyId': 'STS.xxxx',          // STS临时访问密钥ID'policy': 'xxxxxx',                     // Base64编码的策略文本'signature': 'yyyy',                    // 签名字符串'x-oss-security-token': 'zzzz',        // STS安全令牌// 可选参数'success_action_status': '200',         // 上传成功后的返回码'Content-Type': 'image/jpeg',           // 文件类型'x-oss-meta-uuid': 'uuid',             // 自定义元信息前缀
}

实际调用示例:

constructor(config) {// 设置 OSS 服务的 URLthis.url = config.url || 'https://yanyuguodu.oss-cn-beijing.aliyuncs.com/';// 设置访问密钥 IDthis.accessKeyId = config.accessKeyId || '';// 设置访问密钥 Secretthis.accessKeySecret = config.accessKeySecret || '';// 设置安全令牌this.securityToken = config.securityToken || '';// 定义策略文本const policyText = {"expiration": config.expiration, // 策略过期时间"conditions": [["content-length-range", 0, 1048576000] // 文件大小限制]}// 对策略文本进行 Base64 编码this.policy = Base64.encode(JSON.stringify(policyText));}// 定义异步方法 ossUpload,用于上传文件async ossUpload(filePath, name, dir) {// 生成文件的完整路径// const key = dir + this.random_string(10) + this.get_suffix(name);const key = dir + name;// 生成签名const bytes = HMAC(SHA1, this.policy, this.accessKeySecret, { asBytes: true });const signature = util.bytesToBase64(bytes);// 返回一个 Promise 对象return new Promise((resolve, reject) => {// 使用 uni.uploadFile 方法上传文件uni.uploadFile({url: this.url, // 上传地址filePath: filePath, // 文件路径name: 'file', // 文件字段名formData: {name, // 文件名key, // 文件路径policy: this.policy, // 策略// 作用:指定上传的条件和限制// 包含:// - 过期时间 expiration// - 文件大小限制 content-length-range// - 允许的文件类型// - 其他限制条件//下面是必填参数OSSAccessKeyId: this.accessKeyId, // 访问密钥 IDsuccess_action_status: '200', // 成功状态码signature, // 签名'x-oss-security-token': this.securityToken // 安全令牌},// 上传成功的回调函数success: () => {resolve({ success: true, data: this.url + key });},// 上传失败的回调函数fail: () => {reject({ success: false, data: '上传失败' });}});});}

在这里插入图片描述

http://www.lryc.cn/news/468238.html

相关文章:

  • 决策树方法根据指定条件筛选方案
  • 多特征变量序列预测(四) Transformer-BiLSTM风速预测模型
  • 【开源免费】基于SpringBoot+Vue.JS蜗牛兼职平台 (JAVA毕业设计)
  • Ajax笔记
  • 软考:缓存分片和一致性哈希
  • 3109 体验积分值
  • 初识jsp
  • Ansible 的脚本 --- playbooks剧本
  • Windows 死机时 系统错误日志分析与故障排除
  • 基于pytorch搭建CNN
  • C#实现与Windows服务的交互与控制
  • Java和Ts构造函数的区别
  • 植物健康,Spring Boot来助力
  • 百度文心一言接入流程-java版
  • Java 11 新特性深度解析与应用实践
  • druid 连接池监控报错 Sorry, you are not permitted to view this page.本地可以,发布正式出错
  • [RN与H5] 加载线上H5通信失败问题记录(启动本地H5服务OK)
  • electron 打包
  • ChatGLM-6B和Prompt搭建专业领域知识问答机器人应用方案(含完整代码)
  • 虚拟机配置静态IP地址(人狠话不多简单粗暴)
  • Android token JJWT
  • 动态规划<一>初识动态规划
  • 【AIGC】ChatGPT提示词Prompt精确控制指南:Scott Guthrie的建议详解与普通用户实践解析
  • 2024年10月24日随笔
  • 怎么做系统性能优化
  • 负载均衡:四层与七层
  • 【Ubuntu】服务器系统重装SSHxrdpcuda
  • ChatGPT的模型训练入门级使用教程
  • 【OS】2.1.2 进程的状态与转换_进程的组织
  • 和为 n 的完全平方数的最少数量