腾讯云cos使用介绍

腾讯云cos申请配置

目标

使用现成的腾讯云服务创建一个免费的云存储。

官网:https://cloud.tencent.com/

创建账号并实名认证

在腾讯云中创建帐号并实名认证

 

开通对象存储

创建存储桶

 

设置cors规则

在存储桶列表中,选中存储桶

在左侧的菜单中选安全管理

因为我们是在测试上传,全部容许上传即可,真正的生产环境需要单独配置具体的域名和操作方法

 

配置云API秘钥

服务器属于个人的,需要一定的权限才能自由上传图片,这个负责权限验证的其实就是秘钥,也就是说拥有秘钥是进行上传的必要条件。

秘钥配置

API密钥管理

安全性提示

实际工作中,秘钥属于敏感信息,不能直接放到前端存储,容易产生安全问题,更好的做法是把秘钥交给后端管理,前端通过调用接口先获取秘钥,有了秘钥之后再进行上传操作

上述操作完成后继续下面实现方案

  • 新建公共组件,src/components/UploadImg
<template>
  <div>
   <!--
      show-file-list: 是否显示上传的文件列表
      action: '#' 用来指定文件要上传的地址,由于我们需要定制上传动作
             这里设为#
      :http-request:自定义上传行为(重点)
      on-success: 上传成功之后的回调
      before-upload: 上传之前的检查
      :on-success="handleAvatarSuccess"
    -->
    <el-upload
      class="avatar-uploader"
      action="#"
      :show-file-list="false"
      :on-success="handleAvatarSuccess"
      :before-upload="beforeAvatarUpload"
      :http-request="upload"
    >
      <img v-if="imageUrl" :src="imageUrl" class="avatar">
      <i v-else class="el-icon-plus avatar-uploader-icon" />
    </el-upload>
  </div>
</template>

<script>
export default {
  data() {
    return {
      imageUrl: ''
    }
  },
  methods: {
    upload(file) {
      console.log(file)
    },
    handleAvatarSuccess(res, file) {
      this.imageUrl = URL.createObjectURL(file.raw)
    },
    beforeAvatarUpload(file) {
      const isPNG = file.type === 'image/png'
      const isLt2M = file.size / 1024 / 1024 < 2
      if (!isPNG) {
        this.$message.error('上传头像图片只能是 PNG 格式!')
      }
      if (!isLt2M) {
        this.$message.error('上传头像图片大小不能超过 2MB!')
      }
      return isPNG && isLt2M
    }
  }
}
</script>

<style>
.avatar-uploader .el-upload {
  border: 1px dashed #d9d9d9;
  border-radius: 6px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.avatar-uploader .el-upload:hover {
  border-color: #409eff;
}
.avatar-uploader-icon {
  font-size: 28px;
  color: #8c939d;
  width: 178px;
  height: 178px;
  line-height: 178px;
  text-align: center;
}
.avatar {
  width: 178px;
  height: 178px;
  display: block;
}
</style>
  •  在项目中安装依赖
npm i cos-js-sdk-v5 --save
  •  实例化cos对象
  • src/components/UploadImg
// 下面的代码是固定写法
const COS = require('cos-js-sdk-v5')
// 填写自己腾讯云cos中的key和id (密钥)
const cos = new COS({
  SecretId: 'xxx', // 身份识别ID
  SecretKey: 'xxx' // 身份秘钥
})
  • 主要是用cos.putObjectapi来完成上传功能,代码如下
upload(res) {
  if (res.file) {
    // 执行上传操作
    cos.putObject({
      Bucket: 'xxxxxx', /* 存储桶 */
      Region: 'xxxx', /* 存储桶所在地域,必须字段 */
      Key: res.file.name, /* 文件名 */
      StorageClass: 'STANDARD', // 上传模式, 标准模式
      Body: res.file // 上传文件对象
    }, (err, data) => {
      console.log(err || data)
      // 上传成功之后
      if (data.statusCode === 200) {
        this.imageUrl = `https:${data.Location}`
      }
    })
  }
}

使用实例

在需要用到的页面使用封装的组件

<template>
  <div class="user-info">
    <!-- 个人信息 -->
    <el-form ref="userForm" :model="userInfo" label-width="220px">
      <!--手机 -->
      <el-row class="inline-info">
        <el-col :span="12">
          <el-form-item label="手机">
            <el-input v-model="userInfo.mobile" />
          </el-form-item>
        </el-col>
      </el-row>
      <!-- 工号 入职时间 -->
      <el-row class="inline-info">
        <el-col :span="12">
          <el-form-item label="入职时间">
            <el-date-picker
              v-model="userInfo.timeOfEntry"
              type="date"
              class="inputW"
              value-format="yyyy-MM-dd"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <!-- 员工照片 -->
      <el-row class="inline-info">
        <el-col :span="12">
          <el-form-item label="员工头像">
            <upload-img v-model="userInfo.staffPhoto" />
          </el-form-item>
        </el-col>
      </el-row>
      <!-- 保存个人信息 -->
      <el-row class="inline-info" type="flex" justify="center">
        <el-col :span="12">
          <el-button type="primary" @click="hSave">保存更新</el-button>
          <el-button @click="$router.back()">返回</el-button>
        </el-col>
      </el-row>
    </el-form>
  </div>
</template>
<script>
import { getUserDetailById, saveUserDetailById } from '@/api/user.js'

export default {
  data() {
    return {
      userInfo: {}
    }
  },
  created() {
    this.loadUserDatailById()
  },
  methods: {
    async loadUserDatailById() {
      const res = await getUserDetailById(this.$route.query.id)
      this.userInfo = res.data
    },
    async doSave() { // 保存信息
      try {
        await saveUserDetailById(this.userInfo)
        this.$message.success('保存成功')
        // 回到列表页
        this.$router.back()
      } catch (err) {
        this.$message.error(err.message)
      }
    },
    hSave() {
      this.$refs.userForm.validate(valid => {
        valid && this.doSave()
      })
    }
  }
}
</script>

<style scoped lang="scss">
  .user-info{
    padding-top:20px;
  }
</style>

封装组件配置如下

<template>
  <div>
    <el-upload
      class="avatar-uploader"
      action="#"
      :show-file-list="false"
      :before-upload="beforeAvatarUpload"
      :http-request="upload"
    >
      <img v-if="value" :src="value" class="avatar">
      <i v-else class="el-icon-plus avatar-uploader-icon" />
      <el-progress v-if="showProgress" :percentage="percent" />
    </el-upload>
  </div>
</template>

<script>
const COS = require('cos-js-sdk-v5')
// 填写自己腾讯云cos中的key和id (密钥)
const cos = new COS({
  SecretId: 'AKID1yiCQO5UdV6QTFSP5VeW6PRCgtpUsyoN', // 身份识别ID
  SecretKey: 'LPDk0ziEVVLuCDxRecKn0yhCRQ9cqoWz' // 身份秘钥
})
export default {
  props: {
    value: {
      type: String,
      default: ''
    }
  },
  data() {
    return {
      percent: 0, // 进度
      showProgress: false // 控制进度条显示隐藏
    }
  },
  methods: {
    upload(res) {
      if (res.file) {
        this.showProgress = true
        // 执行上传操作
        cos.putObject({
          Bucket: 'rz-1305999452', /* 存储桶 */
          Region: 'ap-beijing', /* 存储桶所在地域,必须字段 */
          Key: res.file.name, /* 文件名 */
          StorageClass: 'STANDARD', // 上传模式, 标准模式
          Body: res.file, // 上传文件对象
          onProgress: (progressData) => { // 上传进度
            this.percent = progressData.percent
          }
        }, (err, data) => {
          console.log(err || data)
          // 上传成功之后
          if (data.statusCode === 200) {
            this.$emit('input', `https:${data.Location}`)
          }
          this.showProgress = false
        })
      }
    },
    beforeAvatarUpload(file) {
      return true
    }
  }
}
</script>

<style>
.avatar-uploader .el-upload {
  border: 1px dashed #d9d9d9;
  border-radius: 6px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.avatar-uploader .el-upload:hover {
  border-color: #409eff;
}
.avatar-uploader-icon {
  font-size: 28px;
  color: #8c939d;
  width: 178px;
  height: 178px;
  line-height: 178px;
  text-align: center;
}
.avatar {
  width: 178px;
  height: 178px;
  display: block;
}
</style>

 

 

前端~小小码农
关注 关注
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
腾讯云COS
安安的博客
05-19 1469
购买对象存储(cos)资源包 购买链接:https://curl.qcloud.com/CcQyuzkZ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BqmsaIOC-1652928361898)(https://pic.xinsong.xyz/img/202205182112358.png)] 创建存储桶列表 这里是因为我用做来做个人图床,所以考虑到自己的一个用量,10G完全满足我了。其中流量中的外网下行流量包(图片访问一次就会产生费用),和CDN回源流量包(CDN节
腾讯云cos+阿里云oss+thinkphp3.2上传文件驱动
01-15
2、PHP版本:7.2.5以上,以下版本使用腾讯云官方对应版本的sdk自行替换 (https://cloud.tencent.com/document/product/436/12266) 3、后续会上传thinkphp5以上版本的对应资源 4、原创资源真实可靠,自行集成如有...
腾讯cos使用
python_web全栈
02-11 3909
0. 腾讯cos介绍 # todo 待补充 不好意思,还没有整理出来,正在抽时间整理 # APPID https://console.cloud.tencent.com/cam/overview 一. 安装 pip install -U cos-python-sdk-v5 二. 注册 # todo 待补充 三. 使用 # todo 待补充 xx. 完整使用的函数封装 # -*- coding:utf-8 -*- from qcloud_cos import Cos...
CosId:通用、灵活、高性能的分布式ID生成器使用教程
最新发布
gitblog_00795的博客
08-20 427
CosId:通用、灵活、高性能的分布式ID生成器使用教程 CosIdUniversal, flexible, high-performance distributed ID generator. | 通用、灵活、高性能的分布式 ID 生成器项目地址:https://gitcode.com/gh_mirrors/co/CosId 项目介绍...
腾讯COS存储的使用
因热爱而执着,因执着而成功。
11-28 2185
文章目录 一、简介 二、使用代码 1、获取永久密钥 2、添加pom.xml中的依赖 3、初始化用户身份信息 4、创建存储桶(需要先进行3、初始化用户身份信息) 5、创建存储桶(需要先进行3、初始化用户身份信息) 6、上传对象(需要先进行3、初始化用户身份信息)(需要改3处) 7、查询存储桶中内容(需要先进行3...
腾讯云cos
qq_53438100的博客
04-26 257
5.统一返回结果类Result。1. 引入pom依赖。
腾讯COS存储上传工具类
微微一笑满城空
05-28 860
腾讯COS存储上传工具
腾讯云COS的Java版SDK测试Demo(增删改查)
07-13
在本文中,我们将深入探讨如何使用腾讯云COS(Cloud Object Storage)的Java版SDK进行对象存储服务的基本操作,包括上传、下载、删除和查询。腾讯云COS是一款高效、安全、可扩展的对象存储服务,适合存储大量数据,...
PHP生成腾讯云COS接口需要的请求签名
01-21
COS腾讯云对象存储的缩写及简称,请求签名是第三方在调用COS相关接口时需要按需提供的、经过特定算法创建而成的一组字符串信息,将唯一的标识当前第三方身份,提供通信双方的身份识别,只有有效的签名COS才会提供...
使用腾讯云cos的jar包
08-02
java开发使用腾讯云cos存储开发的jar包,一共有22个,其中三四个用不着是多余的,但是没有删掉,用的时候全部导进去就行的
腾讯云cos用到的jar包
09-20
在Java开发中,如果需要使用腾讯云COS,通常会依赖一系列的jar包来实现与COS的交互。这些jar包包含了与COS服务通信所需的所有类和方法,涵盖了上传、下载、管理对象等多种功能。 1. **SDK基础库**:腾讯云提供了...
腾讯云COS集成实例(我是凑字数的,CSDN为啥名称非要11个字?)
07-25
本demo集成了腾讯云COS服务,案例中有详细的文件和目录操作方法
腾讯云COS使用简介
长歌行
06-24 8434
由于前段时间购买的阿里云服务器(ECS)其网络运营商故障,不能访问了,退款处理后,又购买了腾讯云服务器(CVM)。然后又开始对腾讯云的熟悉过程。 COS简介 对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。 基本上和阿...
腾讯对象存储COS入门使用-后端中转、前端直传两种方式
weixin_44029834的博客
07-08 490
2、服务端根据后缀,生成带时间的随机 COS 文件路径,并计算对应的签名,3、前端使用 PUT 或 POST 请求,直传文件到 COS。拿着后端返回的签名去上传腾讯cos服务器。先拿着文件名后缀名称向后端拿去签。1、在前端选择文件,前端将后缀发送给服务端。一张图片直接返回,多张返回一个逗号拼接。用来后端连接云服务器。
腾讯cos简介
wkang11147的专栏
10-27 807
cos简介对象存储服务(Cloud Object Storage, COS)是腾讯云对外提供的一种海量文件的分布式存储服务。cos版本原文
使用腾讯cos存储桶服务创建一个简易的图床
qq_61834461的博客
06-05 618
根据需要从腾讯云对象存储界面购买服务,然后进入控制台,点击存储桶列表,然后创建存储桶,填写相关信息(没啥特别的,随便填,注意权限就可以了,然后下一步),在第二个页面也随便填一填就行了,然后确认信息存储桶创建完成,你就获取了一个存储桶;通过存储桶列表进入存储桶界面后就可以和网盘一样随意使用你的存储桶了,包括创建文件夹,上传文件,还可以对文件进行描述。然后再准备密钥(这里用简易方法,如果需要加密简易使用后端服务器返回临时密钥) ,再回到左侧菜单选择密钥管理。完整代码演示(上传,读取,和总览功能)
腾讯云存储对象COS使用(代码教程)
yangxingyu1106的博客
10-12 2720
本文只教学代码的操作使用COS的配置(如APPID、SecretId、SecretKey等)需自行提前准备好。在执行任何和 COS 服务相关请求之前,都需要先生成 COSClient 类的对象, COSClient 是调用 COS API 接口的对象。SDK 支持 JDK 1.8 及以上版本,您可以通过命令 java -version 查看 Java 版本。当我们拿到COS的配置和密钥等后,就可以设置配置类。这些配置都是非常重要的,用于连接腾讯云COS。你可以像我这样创建一个方法,方便后面的调用。
腾讯云COS对象存储
墨家巨子@俏如来
07-23 1416
千呼万唤始出来,太忙了太忙了,本次带来腾讯云COS对象存储。也是因为搞项目正好用到COS,所以就记录下来,希望对大家有所帮助。
写文章

热门文章

  • 前端开发中环境变量配置 3843
  • 腾讯云cos使用介绍 2994
  • js数据格式转换方法 1227
  • js中数组的方法和属性 598
  • 前端实现excel导入导出功能 417

最新评论

  • 腾讯云cos使用介绍

    能不能摆一下: 看不明白啊 你后面引入这部分

大家在看

  • 吐血整理(最全论文指令手册),还有 ChatGPT 3.5/4.0 新手使用手册~ 【亲测好用】 759
  • 吐血整理(最全论文指令手册),还有 ChatGPT 3.5/4.0 新手使用手册~ 【亲测好用】
  • js经典例子!!!
  • 深度学习-卷积神经网络(CNN)
  • 基础数据结构——二分查找平衡版本 107

最新文章

  • excel导出
  • element-ui实现前端分页功能
  • 前端实现excel导入导出功能
2023年1篇
2021年10篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家湘潭玻璃钢气球雕塑玻璃钢花盆模具使用方法深圳联点玻璃钢雕塑厂电话玻璃钢彩绘雕塑制作厂合肥景观玻璃钢雕塑优势上海特色玻璃钢雕塑多少钱兴宁玻璃钢座椅雕塑玻璃钢雕塑山花绍兴玻璃钢人物雕塑批发南宁玻璃钢雕塑厂家直销成都玻璃钢人物雕塑厂广东玻璃钢雕塑摆件设计厂家雕塑小品玻璃钢商场门头糖果美陈铁力人物玻璃钢雕塑厂家中山鱼群像玻璃钢浮雕雕塑四川玻璃钢雕塑商家嘉兴玻璃钢长颈鹿雕塑张掖玻璃钢卡通雕塑价格顺义区商场美陈效果图玻璃钢海洋雕塑厂家玻璃钢雕塑运输安装流程商场美陈購買邯郸市玻璃钢雕塑北京佛像玻璃钢雕塑制作梅州玻璃钢雕塑销售电话珠海玻璃钢雕塑包括哪些楼盘玻璃钢雕塑价格湖南公园标识玻璃钢彩绘雕塑佛山玻璃钢葫芦娃雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化