基于小程序 SDK for 腾讯云对象存储服务修改的ES6 Module
因项目采用了vue3不支持小程序amd方式,修改为es6 module , 为了进一步支持ts已添加声明文件.d.ts
放个示例方便大家使用,另外附上官网链接腾讯云对象存储服务
npm i cos-wx-sdk-v5u3
<template>
<view class="content">
<view class="text-area">
ES6 Module
</view>
</view>
</template>
<script setup>
// 引入腾讯云对象存储 SDK - 修改的版本是V5基于VUE3 ; 如果是导入本地插件需要选择正确路径
import COS from 'cos-wx-sdk-v5u3';
// 初始化
const cos = new COS({
// getAuthorization: funciton() {}, // 参考上方初始化
SecretId: 'xx', // sts 服务下发的临时 secretId
SecretKey: 'xx', // sts 服务下发的临时 secretKey
SimpleUploadMethod: 'putObject', // 强烈建议,高级上传、批量上传内部对小文件做简单上传时使用putObject
});
function handleFileInUploading(fileName, filePath) {
cos.uploadFile({
Bucket: 'ljx-1301875625',
/* 填写自己的 bucket,必须字段 */
Region: 'ap-shanghai',
/* 存储桶所在地域,必须字段 */
Key: fileName,
/* 存储在桶里的对象键(例如:1.jpg,a/b/test.txt,图片.jpg)支持中文,必须字段 */
FilePath: filePath,
/* 上传文件路径,必须字段 */
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('上传成功', data);
}
});
}
/* 选择文件,得到临时路径(以选择图片为例,选择其他文件请参考小程序官方 api) */
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original'], // 可以指定是原图还是压缩图,默认用原图
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function(res) {
const filePath = res.tempFiles[0].path;
const fileName = filePath.substr(filePath.lastIndexOf('/') + 1);
handleFileInUploading(fileName, filePath);
}
});
</script>
<style>
</style>
<template>
<view class="content">
<view class="text-area" @click="handleChooseImage">
ES6 Module
</view>
</view>
</template>
<script>
export default {
data() {
return {
cos: null
}
},
mounted() {
// 引入腾讯云对象存储 SDK - 修改的版本是V5基于VUE3 ; 如果是导入本地插件需要选择正确路径
this.cos = new COS({
// getAuthorization: funciton() {}, // 参考上方初始化
SecretId: 'xx', // sts 服务下发的临时 secretId
SecretKey: 'xx', // sts 服务下发的临时 secretKey
SimpleUploadMethod: 'putObject', // 强烈建议,高级上传、批量上传内部对小文件做简单上传时使用putObject
});
},
methods: {
/* 选择文件,得到临时路径(以选择图片为例,选择其他文件请参考小程序官方 api) */
handleChooseImage() {
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original'], // 可以指定是原图还是压缩图,默认用原图
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function(res) {
const filePath = res.tempFiles[0].path;
const fileName = filePath.substr(filePath.lastIndexOf('/') + 1);
handleFileInUploading(fileName, filePath);
}
});
},
handleFileInUploading(fileName, filePath) {
this.cos.uploadFile({
Bucket: 'ljx-1301875625',
/* 填写自己的 bucket,必须字段 */
Region: 'ap-shanghai',
/* 存储桶所在地域,必须字段 */
Key: fileName,
/* 存储在桶里的对象键(例如:1.jpg,a/b/test.txt,图片.jpg)支持中文,必须字段 */
FilePath: filePath,
/* 上传文件路径,必须字段 */
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('上传成功', data);
}
});
}
}
}
</script>