js实现将文本生成二维码(腾讯云cos)

news2024/12/30 2:46:47

示例
在这里插入图片描述

页面代码

import { getQCodeUrl } from '@/utils/cosInstance';
import { PageContainer } from '@ant-design/pro-components';
import { Access, useAccess } from '@umijs/max';
import { Button, Image } from 'antd';
import { useState } from 'react';

const AccessPage: React.FC = () => {
  const access = useAccess();
  const [imgSrc, setImgSrc] = useState('')
  return (
    <PageContainer
      ghost
      header={{
        title: '权限示例',
      }}
    >
      <Access accessible={access.canSeeAdmin}>
        <Button onClick={() => {
          
          getQCodeUrl('wifi9090密码', '234r4444', (url:string) => {
            console.log(url);
            setImgSrc(url)
          })

        }}>只有 Admin 可以看到这个按钮</Button>

        <Image  src={imgSrc}  height={60} width={60}/>

       
      </Access>
    </PageContainer>
  );
};

export default AccessPage;

cos-js-sdk-v5

调用cos生成二维码接口,需要带上有效的签名

let COS = require('cos-js-sdk-v5');

const COS_DATA = {
  Bucket: '', /* 存储桶,必须 */
  Region: 'ap-shanghai', /* 存储桶所在地域,必须字段 */
  SecretId: '',
  SecretKey: '',
}


// SECRETID 和 SECRETKEY 请登录 https://console.cloud.tencent.com/cam/capi 进行查看和管理
let cos = new COS({
  SecretId: COS_DATA.SecretId,
  SecretKey: COS_DATA.SecretKey,
});


// 获取签名
export const getTempSign = (key: string) => {
  let Authorization = COS.getAuthorization({
    SecretId: COS_DATA.SecretId,
    SecretKey: COS_DATA.SecretKey,
    Method: 'get',
    Key: key,
    Expires: 60,
    Query: {},
    Headers: {},
  });
  return Authorization
}


export const getQCodeUrl = (key: string, text: string, cb: (url: string) => void) => {

  const url = `https://${COS_DATA.Bucket}.cos.${COS_DATA.Region}.myqcloud.com`;
  // const onlyKey = `qrcode/${Date.now()}/${key}`
  cos.request({
    Method: 'GET',
    Key: '',
    Url: url,
    Query: {
      'ci-process': 'qrcode-generate', /* 必须,对象存储处理能力,二维码生成参数为 qrcode-generate	*/
      'qrcode-content': text, /* 必须,可识别的二维码文本信息	 */
      mode: 0, /* 非必须,生成的二维码类型,可选值:0或1。0为二维码,1为条形码,默认值为0	*/
      width: 200, /* 必须,指定生成的二维码或条形码的宽度,高度会进行等比压缩	*/
    },
    Headers: {
      Authorization: getTempSign('')
    }
  },
    function (err:any, data:any) {
      console.log('data---',data);
      
      if (!err) {
        // 获得二维码 base64
        let imgBase64 = data.Response.ResultImage;
        // 比如可拼接前缀直接展示在 img 里
        // document.querySelector('#img').src = 'data:image/jpg;base64,' + imgBase64;
        cb('data:image/jpg;base64,' + imgBase64)
      }
    });

}

export default cos

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1128762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud复习:(2)@LoadBalanced注解的工作原理

LoadBalanced注解标记了一个RestTemplate或WebClient bean使用LoadBalancerClient来进行负载均衡。 LoadBalancerAutoConfiguration类给带注解的RestTemplate添加了拦截器&#xff1a;LoadBalancerInterceptor. 具体流程如下&#xff1a; 首先定义一个LoadBalancerInterceptor…

超强满血不收费的AI绘图教程来了(在线Stable Diffusion一键即用)

超强满血不收费的AI绘图教程来了&#xff08;在线Stable Diffusion一键即用&#xff09; 一、简介1.1 AI绘图1.2 Stable Diffusion1.2.1 原理简述1.2.2 应用流程 二、AI绘图工具2.1 吐司TusiArt2.2 哩布哩布LibLibAI2.3 原生部署 三、一键即用3.1 开箱尝鲜3.2 模型关联3.3 Cont…

小白必看,手把手教你重装系统

一&#xff0c;安装步骤 二&#xff0c;重装之前需要做的准备 1、重装之前请大家务必注意备份重要资料。电脑有价&#xff0c;数据无价——重要数据备份之后&#xff0c;电脑随便折腾都没问题。大不了就是重装不成功。系统软件问题多试几次总能解决的&#xff0c;但重要数据一…

《红蓝攻防对抗实战》七.常规反弹之利用NC在Linux系统执行反弹shell

目录 一.利用NC工具在linux执行反弹shell 1.Linux正向连接shell 2.利用Linux自带bash反弹Shell 前文推荐&#xff1a; 《红蓝攻防对抗实战》一. 隧道穿透技术详解《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网《红蓝攻防对抗实战》三.内网探测协议出网之H…

最新壁纸自动采集系统网站PHP源码/360壁纸官方数据接口采集/ZHEYI采集源码

源码介绍&#xff1a; 最新壁纸自动采集系统网站PHP源码&#xff0c;它是ZHEYI自动采集源码&#xff0c;能够在360壁纸官方数据接口采集。很好用的壁纸网站源码分享&#xff0c;仅供学习&#xff0c;请勿商用。 ZHEYI自动采集壁纸PHP源码&#xff0c;能全自动采集高清壁纸网源…

设计模式—设计模式总览

设计模式—设计模式总览 在 1994 年&#xff0c;由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 《Design Patterns - Elements of Reusable Object-Oriented Software》&#xff08;中文译名&#xff1a;《设计模式 - 可复用的面向对…

Wish如何入驻?最全防封攻略

近日来&#xff0c;跨境电商平台Wish有了新改革&#xff0c;为提高产品质量把控效率&#xff0c;Wish最近将入驻机制又完全开放转变为“邀请制”&#xff0c;加强了品控措施&#xff0c;也意味着商家入驻门槛变高&#xff0c;流程与之前截然不同。但对于已有跨境电商经验/没有跨…

Mybatis 简介(一)

这里使用的是3.5.11版本 MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff08;P…

非连续分配管理方式-基本分页存储管理

非连续分配-可为用户进程分配分散的内存空间 一、存储过程 1.将内存空间分成大小相等的分区&#xff0c;每个分区为一个页框/页帧(内存块/物理块/物理页面)&#xff0c;每个页框有一个编号(页框号/内存块号/物理块号)&#xff0c;从0开始 2.将进程的逻辑地址空间也分为与页框…

在NodeJS中使用npm包实现JS代码混淆加密

使用npm包&#xff0c;在NodeJS中实现JS代码混淆加密 在前后端JS开发过程中&#xff0c;JS代码保护&#xff08;JS代码混淆加密&#xff09;是非常重要的一环。 JShaman是一个云端的代码保护Saas平台&#xff0c;可以对JS代码进行混淆、加密、压缩等操作&#xff0c;从而增强…

[极客大挑战 2019]EasySQL

【解题思路】 1.打开靶机链接 2.输入数据进行尝试 输入1,1&#xff1a; 可以在导航栏里面看到username和password的变量。 3.使用万能密码 username&#xff1a;1 or 11# username&#xff1a;任意数据 password&#xff1a;任意数据 …

传统制造业如何转型?什么是智能工厂?

本文将为大家讲解&#xff1a;传统制造业如何转型&#xff1f;什么是智能工厂&#xff1f; 一、传统工业存在哪些痛点 相较于新兴工业&#xff0c;传统工业在当前发展放缓&#xff0c;并受到了一波互联网数字化智能化发展的冲击。 1、低效率和高成本 传统工业通常采用传统的…

C算法:写一个用于找出数组的最大值和最小值的函数

需求&#xff1a; 写一个用于找出数组的最大值和最小值的函数。 示例&#xff1a;int array[9] {5, 9, 3, 1, 2, 8, 4, 7, 6}; 该数组最大值的下标为1&#xff0c;最小值的小标为3。 代码实现&#xff1a; #include <stdio.h>int getNum(int *array,int len,int (*…

【JAVA学习笔记】39 - final关键字

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/final_ 一、final关键字基本介绍 final可以修饰类、属性、方法和局部变量&#xff0c; 在某些情况下&#xff0c;程序员可能有以下需求&#xff0c;就会使用到final 1)当…

C算法:米m 转化 英尺foot和英寸inch

需求&#xff1a; 已知1英尺等于12英寸&#xff0c;如果已知英制长度的英尺foot和英寸inch的值&#xff0c;那么对应的米是(footinch/12)*0.3048&#xff0c;现在&#xff0c;用户输入的是厘米数&#xff0c;那么对应英制长度的英尺和英寸是多少呢? 输入样例&#xff1a; 1…

ITSource 分享 第4期【简洁的问卷调查系统】

项目介绍 本期给大家介绍一个 简洁的问卷的调查系统。 一 业务介绍 本系统分为以下几个模块: 1.登录注册 2.新建问卷 注册登录完成后,即可进入首页 可以创建问卷 目前只有单选&#xff0c;多选&#xff0c;简答三种问题类型&#xff0c;并且可以选择手动结束和自动结束模式。…

【强化学习】07——规划与学习(Dyna-Q)

文章目录 前置知识回顾策略值函数估计&#xff08;Policy Evaluation&#xff09;策略提升&#xff08;Policy Improvement&#xff09; 模型&#xff08;Model&#xff09;规划(Planning)规划与学习(Planning and Learning)Dyna (集成规划、决策和学习&#xff09;Dyna的框架D…

企业使用微信管理系统更安全更高效更智能

. 想快速处理纠纷&#xff0c;不知道员工和客户孰对孰错&#xff1f; 想提高客户满意度&#xff0c;不清楚客服沟通全过程&#xff1f; 想维护公司利益&#xff0c;不了解销售聊了哪些事&#xff1f; 想知道客户流失原因&#xff0c;不确定沟通话术是否专业&#xff1f; …

第56篇-某度旋转验证码v1分析-旋转验证码【2023-10-24】

声明&#xff1a;该专栏涉及的所有案例均为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;如有侵权&#xff0c;请私信联系本人删帖&#xff01; 一、网站分析 网址&#xff1a; aHR0cHM6Ly93YXBwYXNzLmJhaWR1Lm…

栈和队列相关的OJ题

1.栈的压入、弹出序列 题目链接 栈的压入、弹出序列_牛客题霸_牛客网 (nowcoder.com) 题目描述 题目给出两个序列&#xff0c;一个是入序列pushV&#xff0c;一个是出序列popV&#xff0c;要求判断是否匹配入栈出栈的规则顺序。 解题思路 可以用数据模拟入栈出栈&#xf…