如何使用腾讯云存储图片

一、图片存储方案介绍

1.存到自己公司购买的服务器上

  • 优点:

        好控制

  • 缺点

        成本高由于图片都存放到自己的服务器上,占据空间很大

2. 存到三方云服务器(阿里云,七牛云,腾讯云)

各种云有专门的为图片存储提供的云服务器,我们自己的服务器只存储图片地址即可

1.前端传

前端调用腾讯云API上传图片

2.后端传

图片文件传给自己的后端, 由后端上传到第三方图片服务器

二、腾讯云cos申请配置

官网:腾讯云 - 产业智变 云启未来

1.创建账号并实名认证

1.1打开腾讯云,点击右上角登录,使用微信扫码进行登录

 1.2注册或关联账号

1.3提示关注腾讯云并完成账号注册

 

 1.4注册完成

 1.5点击去实名认证,选择个人认证,进行实名认证

 2.开通对象存储

 

 3.创建存储桶

 一直下一步直到完成

4.设置cors规则

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

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

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

 5.配置云API秘钥

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

 

 

安全性提示

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

 三、上传图片组件

使用的是基于 element 框架提供的 Upload 上传组件封装自己的上传组件 ,其他同理

 

<el-uploadclass="avatar-uploader"action="https://jsonplaceholder.typicode.com/posts/":show-file-list="false":on-success="handleAvatarSuccess":before-upload="beforeAvatarUpload"><img v-if="imageUrl" :src="imageUrl" class="avatar"><i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload><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><script>export default {data() {return {imageUrl: ''};},methods: {handleAvatarSuccess(res, file) {this.imageUrl = URL.createObjectURL(file.raw);},beforeAvatarUpload(file) {const isJPG = file.type === 'image/jpeg';const isLt2M = file.size / 1024 / 1024 < 2;if (!isJPG) {this.$message.error('上传头像图片只能是 JPG 格式!');}if (!isLt2M) {this.$message.error('上传头像图片大小不能超过 2MB!');}return isJPG && isLt2M;}}}
</script>

 因为要自己设置上传行为,所以需要自定义上传属性,elementui文档Element - The world's most popular Vue UI framework

配置自定义上传属性

  • 关键属性::http-request="upload" action="#"

  • 使用自定义行为覆盖默认上传,注意一旦设置自定义上传行为之后,所有的上传操作都需要自己实现,比如数据处理,上传成功之后的后续操作,on-success 钩子函数也不会继续触发

  • 修改组件代码

  • <el-uploadclass="avatar-uploader"action="#":show-file-list="false":http-request="httpRequestFn"><img v-if="imageUrl" :src="imageUrl" class="avatar"><i v-else class="el-icon-plus avatar-uploader-icon"></i>
    </el-upload><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><script>export default {data() {return {imageUrl: ''};},methods: {// 自定义上传函数// http-request属性的回调函数有一个默认的参数,content 是一个对象,这个形参不用传实参httpRequestFn(res) {console.log(res)cos.putObject({Bucket: 'guotongxin-1309007594', /* 必须:存储桶 */Region: 'ap-nanjing', /* 存储桶所在地域,必须字段 */Key: res.file.name, /* 必须 :文件名 */StorageClass: 'STANDARD', // 上传模式Body: res.file, // 上传文件对象onProgress: function(progressData) { // 进度条console.log(JSON.stringify(progressData))}}, (err, data) => { // 注意用箭头函数,否则会出现this的指向问题console.log(err || data)if (data) { // 上传成功this.imageUrl = `http://${data.Location}`console.log(this.$refs.uploadImg)}})}}}
    </script>

四、上传图片到腾讯云

1.安装依赖

npm i cos-js-sdk-v5 --save

2.实例化 cos 对象

// 导入 cos 模块
const COS = require('cos-js-sdk-v5')// SECRETID 和 SECRETKEY请登录 https://console.cloud.tencent.com/cam/capi 进行查看和管理
var cos = new COS({SecretId: 'xxx',SecretKey: 'xxx'
})

3.使用 cos 对象完成上传

httpRequestFn(res) {console.log(res)cos.putObject({Bucket: 'guotongxin-1309007594', /* 必须:存储桶 */Region: 'ap-nanjing', /* 存储桶所在地域,必须字段 */Key: res.file.name, /* 必须 :文件名 */StorageClass: 'STANDARD', // 上传模式Body: res.file, // 上传文件对象onProgress: function(progressData) { // 进度条console.log(JSON.stringify(progressData))}}, (err, data) => { // 注意用箭头函数,否则会出现this的指向问题console.log(err || data)if (data) { // 上传成功this.imageUrl = `http://${data.Location}`console.log(this.$refs.uploadImg)}})}

4.如何查看 Bucket 和 Region

 5.根据你的项目情况将imageUrl传给后台同步信息即可

SDK文档:对象存储 操作列表 - API 文档 - 文档中心 - 腾讯云

JavaScript SDK文档:对象存储 快速入门 - SDK 文档 - 文档中心 - 腾讯云

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云函数使用方法及注意事项

本人博客 https://blog.thatcoder.cn 本文以建立一个python推送课表为例 写好python文件 打包依赖 配置云函数 大功告成 写好python文件 def get_class(name, passwd):登入并获得课表网站数据 def findall(soundCode):将数据处理成answer数列 def msg(answer):判断当天有…

笔记:腾讯云服务器的使用

第一步 重装系统 第二步 重置密码 第三步 登录服务器 方法一&#xff1a; 使用腾讯云服务的登录方式 如果是【windows】&#xff0c;就像平时电脑一样使用即可 如果是【Linux】&#xff0c;输入 su 敲击回车 &#xff08; 然后提示你输入密码&#xff0c;注…

手把手教你进行腾讯云域名注册

本文转载自&#xff1a;手把手教你进行腾讯云域名注册 建站或企业信息化第一步就是注册域名&#xff0c;现梳理下在腾讯云注册域名步骤&#xff0c;分享给大家&#xff1a; 1、注册登录腾讯云&#xff08;若无账号先注册&#xff09; 2、绑定服务商 点击 这里 或 https://par…

R语言中如何利用ggplot2绘制qq图和boxplot图

文章目录 绘制qq图函数介绍geom_qq()参数介绍注意事项 例子 Using to explore the distribution of a variable绘制boxplot函数介绍参数介绍 例子利用分位点绘制箱线图 将qq图和箱线图进行融合函数介绍参数介绍注意事项 例子 绘制qq图 在ggplot2中绘制qq图需要两步&#xff0c…

关于R语言的绘图包ggplot2参数

ggplot2 在R语言中ggplot2是一个用来绘制图形的R包&#xff0c;gg的意思是Grammer of Graphics&#xff0c;意思就是绘图的语法&#xff0c;作者是Hadley Wickham&#xff0c;这个大神也是统计学诺贝尔奖的获得者 ggplot2的核心理念是将绘图与数据分离&#xff0c;数据相关的…

R语言ggplot2 | PCA分析及其可视化

主成分分析 主成分分析(PCA)的基本介绍PCA常用的参数标准化特征值和特征向量载荷得分 R语言实现PCA分析逐步计算PCA分析中的参数prcomp函数princomp函数 自定义函数实现PCA分析及其可视化 咱们常提到的PCA分析全称是Principal Components Analysis&#xff0c;即主成分分析&…

玩转数据可视化之R语言ggplot2:(十六)使用ggplot2编程(函数式绘图)

【R语言数据科学可视化篇】 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏✨本文收录于【R语言数据科学】本系列主要介绍R语言在数据科学领域的应用包括: R语言编程基础、R语言可…

[R语言]数据可视化包ggplot2教程及实例

前言 ggplot是一个拥有一套完备语法且容易上手的绘图系统&#xff0c;在Python和R中都能引入并使用&#xff0c;在数据分析可视化领域拥有极为广泛的应用。本篇从R的角度介绍如何使用ggplot2包&#xff0c;首先给几个我觉得最值得推荐的理由&#xff1a; 采用“图层”叠加的设…

R语言中强大的作图软件包ggplot2

R语言两大底层绘图系统 grid 图形系统可以很容易地控制图形基础单元&#xff0c;给予编程者创作图形极大的灵活性。grid 图形系 统还可以产生可编辑的图形组件&#xff0c;这些图形组件可以被复用和重组&#xff0c;并能通过 grid.layout()等函数&#xff0c; 把图形输出到指定…

R语言绘图之ggplot2包

6月份一直在忙期末考试&#xff0c;今天来迅速的学习下ggplot2包的简单绘图。 R的基础包里面也有很多画图函数&#xff0c;例如plot();barplot();qqplot(); 但是还有大名鼎鼎的ggplot2包&#xff0c;用这个包的函数画出的图比较漂亮&#xff0c;而且使用灵活。 在ggplot的官…

数据分析——R语言中ggplot2用法(1)

备忘录地址&#xff08;用来查询一些参数&#xff09; https://www.maths.usyd.edu.au/u/UG/SM/STAT3022/r/current/Misc/data-visualization-2.1.pdf R语言软件参数 R3.6.0 安装包、导入包 install.package(ggplot) library(ggplot)首先加载数据集 这里用的是示例数据&am…

R语言:ggplot2包详解及各类精美图形绘制

文章目录 1.1 Ggplot2介绍1.2 Ggplot2特点默认值迭代高级元素 1.3 Ggplot2映射组件layerScalecoordtheme 1.4 Ggplot2自带数据集1.5 Ggplot2组成部分1.6 美观性参数1.7 多子图绘制1.8 图形类型与函数1.9 曲线拟合1.10 箱线图1.11 频率直方图与密度曲线1.12 柱状图1.13 时间序列…

R语言学习—— ggplot2函数

最近在自学R语言&#xff0c;但是从纯粹的理论开始学习太慢了而且没有实操不太行&#xff0c;所以目前是在实际应用中查漏补缺&#xff0c;遇到什么临时学什么&#xff0c;然后把笔记都一一记录下啦。分享出来一边是方便自己查找&#xff0c;另一方面也是想方便和我一样入门的菜…

R语言可视化【ggplot2】

R语言可视化【ggplot2】 文章的文字/图片/代码部分/全部来源网络或学术论文或课件&#xff0c;文章会持续修缮更新&#xff0c;仅供学习使用。 目录 R语言可视化【ggplot2】 一、可视化介绍 二、不同情况适用的图形 类别比较&#xff1a; 数值关系&#xff1a; 数据分布…

马斯克成立XAI公司: 探索宇宙的真实本质

尊敬的读者朋友们&#xff0c;欢迎来到CSDN&#xff01;我是CSDN博主&#xff0c;今天非常高兴为大家带来这篇文章&#xff0c;我们将一起探索马斯克成立xAI公司的意义和目标&#xff0c;以及这个活动的丰富内容。让我们一起踏上这场奇幻之旅&#xff01; 【引言】 在科技界的…

2023年十大科技趋势预测【集锦:机构和GPT们的科技趋势预测,欢迎大家前来围观,看看谁预测得准~~~】

目录 2023年十大科技趋势预测——Claude+ 2023年十大科技趋势预测——GPT-4 1. 量子计算

不止ChatGPT,谷歌云 AI 方案早已厉兵秣马!

【本文由Cloud Ace整理发布&#xff0c;更多内容请访问 Cloud Ace 官网】 近日 ChatGPT 爆火&#xff0c;掀起热议&#xff0c;能聊天能写代码&#xff0c;还能写策划稿&#xff0c;AI 似乎已逐渐变得无所不能。 不过在 AI 对话上&#xff0c;谷歌早在17年就提出了 Dialogflow …

同声传译例子

效果&#xff1a; 准备开源中… 包括&#xff1a; 前端后端架构数据处理模型原理模型训练模型推理测试集评价方法&脚本部分数据

微信小程序 -- 获取语音,并将语音转为文字(插件:微信同声传译)

实现的功能是获取语音&#xff0c;并将语音转为文字&#xff0c;实现效果如下&#xff1a; 1. 小程序后台添加插件&#xff1a;微信同声传译 登录小程序后台&#xff1a;https://mp.weixin.qq.com 11. 设置 -> 第三方设置 -> 添加插件 12. 输入“微信同声传译”&#…

小程序使用微信同声传译进行语言播报(数字播报问题)

小程序使用微信同声传译进行语言播报&#xff08;数字播报问题&#xff09; 需求是产品提的 代码是我写的&#xff08;没办法&#xff0c;卑微打工人&#xff09; 废话不多说直接开始吧 首先在微信微信公众平台插件管理引入插件&#xff08;微信同声传译插件地址&#xff09;…