阿里云用STS上传oss的完整程序执行流程图 和前端需要哪些参数uniapp
H5 微信小程序可用的前端直传阿里云OSS(STS临时凭证+前端签名)直接下载插件
下面是原理说明:
明白了,我来详细说明前端上传文件到阿里云OSS需要携带的具体参数:
- 从服务器获取的 STS 凭证:
// 这些参数需要从你的后端服务器获取
{accessKeyId: "STS.xxxx", // STS临时访问密钥IDaccessKeySecret: "yyyy", // STS临时访问密钥SecretsecurityToken: "zzzz", // STS安全令牌expiration: "2024-10-24T12:00:00Z" // 过期时间
}
- 上传文件时实际发送给阿里云的表单数据:
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: '上传失败' });}});});}
相关文章:
阿里云用STS上传oss的完整程序执行流程图 和前端需要哪些参数uniapp
H5 微信小程序可用的前端直传阿里云OSS(STS临时凭证前端签名)直接下载插件 下面是原理说明: 明白了,我来详细说明前端上传文件到阿里云OSS需要携带的具体参数: 从服务器获取的 STS 凭证: // 这些参数需要从你的后端服务器获…...
决策树方法根据指定条件筛选方案
代码功能说明 条件类:Condition 类用于定义每个条件的范围,并提供一个方法 is_satisfied 来检查输入值是否满足该条件。 算法选择器类:AlgorithmSelector 类负责应用条件并记录不满足的条件。它提供方法 apply_condition 用于更新可用算法&a…...
多特征变量序列预测(四) Transformer-BiLSTM风速预测模型
往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 全是干货 | 数据集、学习资料、建模资源分享! EMD、EEMD、FEEMD、CEEMD、CEEMDAN的区别、原理和Python实现(一)EMD-CSDN博客 EMD、EEM…...
【开源免费】基于SpringBoot+Vue.JS蜗牛兼职平台 (JAVA毕业设计)
本文项目编号 T 034 ,文末自助获取源码 \color{red}{T034,文末自助获取源码} T034,文末自助获取源码 目录 一、系统介绍1.1 平台架构1.2 管理后台1.3 用户网页端1.4 技术特点 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景…...
Ajax笔记
介绍 Ajax是一种网页开发技术,全称是Asynchronous JavaScript and XML(异步JavaScript和XML)。作用如下: 数据交换:可以通过Ajax给服务器发送请求,并获取服务器响应的数据。即前端动态的发送Ajax到服务器端…...
软考:缓存分片和一致性哈希
缓存分片技术是一种将数据分散存储在多个节点上的方法,它在分布式缓存系统中尤为重要。这项技术的核心目的是提高系统的性能和可扩展性,同时确保数据的高可用性。以下是缓存分片技术的一些关键点: 数据分片:缓存分片涉及将数据分成…...
3109 体验积分值
经验值:1200 时间限制:1000毫秒 内存限制:128MB 合肥市第34届信息学竞赛(2017年) 不许抄袭,一旦发现,直接清空经验! 题目描述 Description 卡卡西和小朋友们做完了烧脑的数字游…...
初识jsp
学习本章节前建议先安装Tomcat web服务器:tomcat下载安装及配置教程_tomcat安装-CSDN博客 1、概念 我的第一个JSP程序: 在WEB-INF目录之外创建一个index.jsp文件,然后这个文件中没有任何内容。将上面的项目部署之后,启动服务器…...
Ansible 的脚本 --- playbooks剧本
playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Vars:变量 (3)Templates:模板 &a…...
Windows 死机时 系统错误日志分析与故障排除
目录 前言正文 前言 对于服务器异常重启,推荐阅读:详细分析服务器自动重启原因(涉及Linux、Window) 以下主要做一个总结梳理 正文 查看系统事件日志: 可以查看系统事件日志,找出可能导致系统崩溃的错误…...
基于pytorch搭建CNN
先上代码 import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as F from torchvision import datasets, transforms import matplotlib.pyplot as plt import numpy as np import pandas as pd import matplotlibmatplotlib.use(tkA…...
C#实现与Windows服务的交互与控制
在C#中,与Windows服务进行交互和控制通常涉及以下几个步骤: 创建Windows服务:首先,需要创建一个Windows服务项目。可以使用Visual Studio中的“Windows 服务 (.NET Framework)”项目模板来创建Windows服务。 配置服务控制事件&am…...
Java和Ts构造函数的区别
java中子类在使用有参构造创建对象的时候不必要必须调用父类有参构造 而js则必须用super()调用父类的有参构造,即使用不到也必须传递 Java 中的处理方式 可选择性参数: 在 Java 中,当子类使用父类的有参构造方法创建对象时,可以只传递需要的参数。如果父…...
植物健康,Spring Boot来助力
3系统分析 3.1可行性分析 通过对本植物健康系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本植物健康系统采用SSM框架,JAVA作为开发语言&#…...
百度文心一言接入流程-java版
百度文心一言接入流程-java版 一、准备工作二、API接口调用-java三、百度Prompt工程参考资料: 百度文心一言:https://yiyan.baidu.com/百度千帆大模型:https://qianfan.cloud.baidu.com/百度千帆大模型文档:https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html千tokens…...
Java 11 新特性深度解析与应用实践
Java 作为一种广泛应用的编程语言,不断演进以满足开发者日益增长的需求和适应技术的发展趋势。Java 11 带来了一系列重要的新特性和改进,这些变化不仅提升了语言的性能和功能,还为开发者提供了更好的开发体验和工具。本文将深入探讨 Java 11 …...
druid 连接池监控报错 Sorry, you are not permitted to view this page.本地可以,发布正式出错
简介: druid 连接池监控报错 Sorry, you are not permitted to view this page. 使用Druid连接池的时候,遇到一个奇怪的问题,在本地(localhost)可以直接打开Druid连接池监控,在其他机器上打开会报错&#…...
[RN与H5] 加载线上H5通信失败问题记录(启动本地H5服务OK)
RT: nextjs项目 在本地启动H5服务, 本地开发都OK 发布到线上后, 效果全无, 经排查发现, 写了基本配置的js脚本在挂载时机上的差异导致 根本原因是...
electron 打包
安装及配置 安装electron包以及electron-builder打包工具 # 安装 electron cnpm install --save-dev electron # 安装打包工具 cnpm install electron-builder -D 参考的package.json文件 其中description和author为必填项目 {"name": "appfile",&qu…...
ChatGLM-6B和Prompt搭建专业领域知识问答机器人应用方案(含完整代码)
目录 ChatGLM-6B部署 领域知识数据准备 领域知识数据读取 知识相关性匹配 Prompt提示工程 领域知识问答 完整代码 本文基于ChatGLM-6B大模型和Pompt提示工程搭建医疗领域知识问答机器人为例。 ChatGLM-6B部署 首先需要部署好ChatGLM-6B,参考 ChatGLM-6B中英双…...
虚拟机配置静态IP地址(人狠话不多简单粗暴)
1.先找到以下位置: 2. 虚拟机中执行vi /etc/sysconfig/network-scripts/ifcfg-ens33 根据上图信息修改配置文件内容: 静态IP地址设置不超过255就行,我这里弄得100,没毛病。 3.修改并保存文件后,重启网络执行&#…...
Android token JJWT
在Android开发领域,JJWT(Java JWT,即Java Json Web Token)库是一个流行的工具,用于处理JSON Web Tokens(JWTs)。JWT是一种轻量级的、自包含的、基于JSON的用于双方之间安全传输信息的简洁的、UR…...
动态规划<一>初识动态规划
目录 认识动态规划 LeetCodeOJ练习 斐波那契数列模型 认识动态规划 1.动态规划是一种用于解决优化问题的算法策略。 2.它的核心原理是把一个复杂的问题分解为一系列相互关联的子问题。通过先求解子问题,并且记录这些子问题的解(通常用一个表格之类的…...
【AIGC】ChatGPT提示词Prompt精确控制指南:Scott Guthrie的建议详解与普通用户实践解析
博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯斯科特古斯里(Scott Guthrie)的建议解读人机交互设计的重要性减轻用户认知负担提高Prompt的易用性结论 💯普通用户视角的分析普通用户…...
2024年10月24日随笔
1024程序员节啊,现在已经是晚上的十点半了,我还在实验室里没走,刚把力扣的每日一题写完,好忙啊,好忙啊,好忙啊,为什么都大三了我还不能做自己的事情,今天老师开会说要给互联网加大赛…...
怎么做系统性能优化
对于软件或系统的性能优化,可以采取多种措施来提高效率和响应速度。这里为您列举一些常见的方法: 1. 代码优化:检查并优化算法复杂度,减少不必要的计算。使用更高效的数据结构和算法。 2. 数据库优化: •索引优化&…...
负载均衡:四层与七层
负载均衡建立在现在网络基础之上,提供一种廉价透明有效的方式扩展网络设备和服务器带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡可分为七层负载与四层负载。 四层负载(目标地址与端口交换) 主要通过报文中…...
【Ubuntu】服务器系统重装SSHxrdpcuda
本文作者: slience_me Ubuntu系统重装操作合集 文章目录 Ubuntu系统重装操作合集1.1 系统安装:1.2 安装openssh-server更新系统包安装OpenSSH服务器检查SSH服务的状态配置防火墙以允许SSH测试SSH连接配置SSH(可选) 1.3 安装远程连…...
ChatGPT的模型训练入门级使用教程
ChatGPT 是由 OpenAI 开发的一种自然语言生成模型,基于 Transformer 架构的深度学习技术,能够流畅地进行对话并生成有意义的文本内容。它被广泛应用于聊天机器人、客户服务、内容创作、编程助手等多个领域。很多人对如何训练一个类似 ChatGPT 的语言模型…...
【OS】2.1.2 进程的状态与转换_进程的组织
✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 🔥 所属专栏:C深入学习笔记 💫 欢迎来到我的学习笔记! 一、进程的状态 1.1.创建态 ……的…...
12306网站哪个公司做的/百度开发平台
上一篇搭建部署了Jumpserver,但是还未彻底完成,这篇继续接着上一篇搭建部署Jumpserver。 1、test-env hostname ip role cs74s 192.168.10.15 server systemctl stopNetworkManager systemctl disableNetworkManager systemctl stopfirewalld …...
网站空间查询工具/厦门网站的关键词自动排名
容器作业 一、填空题 1.Java集合框架提供了一套性能优良、使用方便的接口和类,包括Collection和Map两大类,它们都位于 java.util 包中 2.队列和堆栈有些相似,不同之处在于 。 3. 结构是一种由多个节点组成的线性数据结构,并且每个…...
网站设计师工资一般多少/bt磁力种子
1、CQRS架构 上面图中包含有很多的概念,先列举一下所涉及的概念: Command Bus(命令总线):在 Command Handler 之前,可以看作是 Command 发布者。Command Handler(命令处理器)&#…...
宁津网站建设/灰色行业推广
主板都有什么类型呢?不同主板之间有什么区别吗?不同类型的主板都有什么用呢?装机的时候,主板的大小不仅和机箱有关,也和其他硬件以及自己的性能、功能需求有很大的关系,因此选择一个正确类型的主板至关重要…...
在wordpress中rss订阅的步骤是什么?/sem竞价托管多少钱
多核CPU中,要很好地发挥出多个CPU的性能的话,必须保证分配到各个CPU上的任务有一个很好的负载平衡。否则一些CPU在运行,另外一些CPU处于空闲,无法发挥出多核CPU的优势来。要实现一个好的负载平衡通常有两种方案,一种是…...
东莞市seo网络推广平台/关键词seo公司真实推荐
本主题将从3个角度进行对比常见设置(CentOS 6 vs CentOS 7)服务管理(Sysvinit vs Upstart vs Systemd)性能测试(cpu/mem/io/oltp)本文为第三部分:性能测试的对比1. CPU测试工具: 通过sysbench对…...