赞
踩
50GB 标准存储容量包6个月(180天)
的额度。初次使用 COS,建议您先了解以下基本概念:
步骤 1-5都是前期准备(已完成的可以跳过),步骤6开始正式使用
在使用腾讯云 COS 服务前,您需要先注册一个腾讯云账号。请单击下方按钮开始注册。(如果您已注册,请跳过该步骤。)
账号注册完成后,使用该账号登录 腾讯云控制台,开始实名认证。详细操作指引请参见 实名认证介绍。(如果您已完成,请跳过该步骤。)
在 腾讯云控制台 中,选择云产品 > 对象存储,进入 COS 控制台,按照界面提示开通 COS 服务。(如果您已开通,请跳过该步骤。)
我们需要创建一个用于存放对象的存储桶:
在访问管理控制台中的 API 密钥管理 页面里获取 APPID,并创建 SecretId、SecretKey。
安装小程序 SDK 有两种方式:手动安装和 npm 安装,具体安装方法如下。
(自己新建一个utils文件夹和cos-wx-sdk-v5.js文件)
var COS = require('./utils/cos-wx-sdk-v5.js')
npm install cos-wx-sdk-v5
其中,程序代码使用 var COS = require('cos-wx-sdk-v5');
进行引用;
我这里用的是手动安装的方法。
小程序里请求 COS 需要登录到 微信公众平台,选择开发 > 开发设置 > 服务器域名,配置域名白名单。SDK 使用到了两个接口:
需要在对应白名单里,配置 COS 域名,白名单域名格式有两种:
examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com
。ForcePathStyle: true
,这种方式需要配置地域域名作为白名单,例如:cos.ap-guangzhou.myqcloud.com
。
把存储桶的访问域名加上
var COS = require('./utils/cos-wx-sdk-v5.js');
通常情况下我们只需要创建一个 COS SDK 实例,然后在需要调用SDK方法的地方直接使用这个实例即可
var cos = new COS({
....
});
// SECRETID 和 SECRETKEY 请登录 https://console.cloud.tencent.com/cam/capi 进行查看和管理
var cos = new COS({
SecretId: 'SECRETID',
SecretKey: 'SECRETKEY',
SimpleUploadMethod: 'putObject', // 强烈建议,高级上传、批量上传内部对小文件做简单上传时使用putObject,sdk版本至少需要v1.3.0
});
wx.chooseMedia
选择图片,cos.postObject
把图片上传到腾讯云COS;
关键js代码:
/* 选择文件,得到临时路径 */
uploadImg: function () {
var that = this;
// chooseImage已停止维护,需使用chooseMedia选择上传
wx.chooseMedia({
count: 9,
mediaType: ['image'],
sizeType: ['original'],
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success(result) {
console.log(result);
that.setData({
imgList: result.tempFiles
})
// console.log(that.data.imgList);
},
})
},
// 上传到COS
uploadIng: function () {
for (var index in this.data.imgList) {
var filePath = this.data.imgList[index].tempFilePath;
var Key = filePath.substr(filePath.lastIndexOf('/') + 1); // 这里指定上传的文件名,不指定的话,上传不是图片格式
cos.postObject({
Bucket: '', //对象储存桶的名称
Region: '', //所属地域
Key: 'images/' + Key, // 存储在桶里的对象键(例如:1.jpg,a/b/test.txt)我这里是上传到存储桶上的images文件夹里
FilePath: filePath,
onProgress: function (info) {
console.log('进度条', JSON.stringify(info));
}
}, function (err, data) {
// 这里我用的是回调函数的形式,也可以用promise方式
if (err) {
console.log('上传失败', err);
} else {
console.log('上传成功', data);
}
});
}
}
效果:
上传成功后,会返回图片地址
我们在控制台可以看到文件列表
// 获取图片地址(在权限为私有读写情况下使用)
cos.getObjectUrl({
Bucket: '', //对象储存桶的名称
Region: '', //所属地域
Key: 'images/' + Key,
}, function (err, data) {
console.log('获取url',err || data);
});
关注公众号【richGirlyyy】,发消息:小程序图片云存储,即可获取demo源码;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。