uniapp上传文件到腾讯云

官方API地址

javaScript_SDK

 下载cos
npm i cos-js-sdk-v5 --save
生成签名

获取secretId和secretKey

let cos = new COS({
		SecretId: '*******************************',
		SecretKey: '******************************',
	})

参考文章:腾讯云如何获取secretId和secretKey_腾讯云 对象存储 只有secretid 没有secretkey-CSDN博客

上传文件
cos.uploadFile({
		Bucket: 'link-******',
		/* 填写自己的 bucket,必须字段*/
		Region: 'ap-nanjing',
		/* 存储桶所在地域,必须字段 */
		Key: filename,
		/* 存储在桶里的对象键(例如:1.jpg,a/b/test.txt,图片.jpg)支持中文,必须字段 */
		Body: selectedFile, // 上传文件对象
		SliceSize: 1024 * 1024 * 5,
		/* 触发分块上传的阈值,超过5MB使用分块上传,小于5MB使用简单上传。可自行设置,非必须 */
		onProgress: function(progressData) {
			console.log(JSON.stringify(progressData));
		}
	}, function(err, data) {
		if (err) {
			console.log('上传失败', err);
		} else {
			console.log('上传成功');
		}
	});
配置CORS

uniapp上传文件到腾讯云_第1张图片

appleId很明显就是识别身份用的

SecretId和SecretKey是用来生成签名的(我后面会说)

Bucket和Region是用来识别地区信息的

完整代码

1、创建upload.js文件进行封装

import COS from 'cos-js-sdk-v5';//引入

export function Upload(selectedFile, filename) {

	console.log(selectedFile, filename);
    //selectedFile:文件, filename:文件名称

	let cos = new COS({
		SecretId: '********************************',
		SecretKey: '********************************',
	})
	cos.uploadFile({
		Bucket: 'link-*********',
		/* 填写自己的 bucket,必须字段*/
		Region: 'ap-nanjing',
		/* 存储桶所在地域,必须字段 */
		Key: filename,
		/* 存储在桶里的对象键(例如:1.jpg,a/b/test.txt,图片.jpg)支持中文,必须字段 */
		Body: selectedFile, // 上传文件对象
		SliceSize: 1024 * 1024 * 5,
		/* 触发分块上传的阈值,超过5MB使用分块上传,小于5MB使用简单上传。可自行设置,非必须 */
		onProgress: function(progressData) {
			console.log(JSON.stringify(progressData));
		}
	}, function(err, data) {
		if (err) {
			console.log('上传失败', err);
		} else {
			console.log('上传成功');
		}
	});

}

2、调用





不知道为什么,组件库获得的file文件对象不能直接上传成功,需要转换格式,所以我就进行了格式转换

其他相关文章:

使用腾讯云COS提示CORS策略阻止的解决方案-CSDN博客        

报错Error: params body format error, Only allow File|Blob|String文件上传到腾讯云 ,转换文件格式-CSDN博客

你可能感兴趣的:(uni-app,腾讯云,云计算)