Skip to content
腾讯云cos文件上传示例代码

封装的js

js
let cos;
/**
 * 上传腾讯云cos
 * @param {*} CONFIG  配置参数
 * @param {*} fileType  文件类型
 * @param {*} callBack  回调函数
 */
function uploadImgCOS(CONFIG, fileType, callBack) {

    if (!cos) introduceJs('https://www.yilibabyclub.com/Attachment_Islion_New/BigPurchase/xiaoji/file/utils/cos-js-sdk-v5.min.js');
    const ipt = document.createElement('input');
    ipt.type = 'file'; ipt.accept = fileType; ipt.onchange = ({ target }) => target.files[0] && upload(target.files[0], CONFIG, callBack);
    ipt.click();
}
// 工具:生成唯一文件名
const genKey = (name, dir) => dir + Date.now() + '-' + Math.random().toString(36).slice(2) + '.' + name.split('.').pop();
// 上传函数
function upload(file, CONFIG, callBack) {
    // 初始化 COS
    cos = new COS({ SecretId: CONFIG.SecretId, SecretKey: CONFIG.SecretKey, SecurityToken: CONFIG.SecurityToken, StartTime: CONFIG.StartTime, ExpiredTime: CONFIG.ExpiredTime });
    console.log('开始上传:', genKey(file.name, CONFIG.Dir), CONFIG);
    const Key = genKey(file.name, CONFIG.Dir);
    cos.putObject({
        Bucket: CONFIG.Bucket,
        Region: CONFIG.Region,
        Key,
        Body: file, // 上传文件对象
        onProgress: function (progressData) {
            console.log('进度:' + (progressData.percent * 100).toFixed(0) + '%')
        }
    }, function (err, data) {
        if (err) {
            console.log('上传失败,返回数据为:', err);
        }
        console.log('上传成功,返回数据为:', data);
        console.log('上传成功,返回链接为:', 'https://' + data.Location);
        callBack('https://' + data.Location)
    });
}

使用上面的代码

js
newVue('#app', {

    setup() {
        const url = ref('')

        const CONFIG = {
            Bucket: 'XXX', // 存储桶
            Region: 'XXX', // 地域
            SecretId: 'XXX', // 临时密钥的SecretId
            SecretKey: 'XXXX', // 临时密钥的SecretKey
            Dir: '', // 文件名称,可以为空也可以自己写
            SecurityToken: 'XXXXXXXXX',
            StartTime: 1766476876, // 临时密钥开始时间
            ExpiredTime: 1766563276, // 临时密钥过期时间
        };

        // 触发这个函数,就会弹出选择文件的窗口选择并上传
        const selectAdnUpload = () => {
            uploadImgCOS(CONFIG, 'image/*', (u) => {
                console.log('上传返回链接为:', u)
                url.value = u
            })
        }
        return {
            selectAdnUpload,
            url
        }
    }
})