uniapp上传腾讯云
使用 uniapp 上传文件到腾讯云
准备工作
确保已安装 uniapp 开发环境,并在腾讯云控制台开通对象存储(COS)服务,获取 Bucket 名称、Region(地域)、SecretId 和 SecretKey。
安装 COS SDK
在 uniapp 项目中安装腾讯云 COS SDK:
npm install cos-js-sdk-v5 --save
配置腾讯云 COS 信息
在 main.js 或具体页面中引入 COS SDK 并配置密钥:
import COS from 'cos-js-sdk-v5';
const cos = new COS({
SecretId: '您的SecretId',
SecretKey: '您的SecretKey',
});
实现文件上传逻辑
选择文件后调用 COS SDK 上传:
// 选择文件方法(示例)
uni.chooseImage({
count: 1,
success: (res) => {
const file = res.tempFiles[0];
this.uploadToCOS(file);
},
});
// 上传到腾讯云 COS
uploadToCOS(file) {
cos.putObject({
Bucket: '您的Bucket名称',
Region: '地域如ap-guangzhou',
Key: `uploads/${Date.now()}_${file.name}`, // 存储路径
Body: file,
onProgress: (progressData) => {
console.log('上传进度:', progressData);
},
}, (err, data) => {
if (err) {
console.error('上传失败:', err);
} else {
console.log('上传成功:', data.Location);
}
});
}
跨域问题处理
在腾讯云 COS 控制台的 Bucket 权限中,配置 CORS 规则允许 uniapp 的域名访问。示例规则:
- 允许来源:
*或指定域名 - 允许方法:
PUT、POST、GET - 允许头部:
*
安全建议
- 避免在前端直接暴露 SecretId 和 SecretKey,建议通过后端生成临时密钥(STS)或签名。
- 文件路径(Key)建议添加随机前缀防止覆盖。
临时密钥方案(推荐)
通过后端接口获取临时密钥,替换前端硬编码的密钥:
cos.getCredential((err, data) => {
if (!err) {
const { TmpSecretId, TmpSecretKey, Token } = data;
// 使用临时密钥初始化 COS
}
});






