vue+elementui运用el-upload结合cos-js-sdk-v5实现腾讯云cos文件上传

npm install cos-js-sdk-v5

下面展示 upload.js

// An highlighted block
import COS from 'cos-js-sdk-v5'
import {
    getSecret } from '@/api/upload'

export default function upload(file, config, callback) {
   
  if (typeof config.isPublic === 'undefined') {
   
    config.isPublic = true
  }
  getSecret({
   
    type: config.type,
    path: config.path,
    isPublic: config.isPublic ? config.isPublic : false
  }).then(response => {
   
    const data = response.data
    const cos = new COS({
   
      getAuthorization: function(options, callback) {
   
        callback({
   
          TmpSecretId: data.tmpSecretId,
          TmpSecretKey: data.tmpSecretKey,
          XCosSecurityToken: data.sessionToken,
          ExpiredTime: data.expiredTime
        })
      }
    })

    return {
   
      cos: cos,
      dir: data.url,
      bucket: data.bucket,
      region: data.region
    }
  }).then(data => {
   
    const cos = data.cos
    const dir = data.dir
    const bucket = data.bucket
    const region = data.region

    const url = cos.getObjectUrl({
   
      Bucket: bucket,
      Region: region,
      Key: `${
     dir}/${
     file.name}`,
      Sign: false
    }, function(data) {
   
      cos.putObject({
   
        Bucket: bucket,
        Region: region,
        Key: `${
     dir}/${
     file.name}`,
        Body: file
      }, function(data) {
   
        if (config.isPublic) {
   
          callback(url.replace(/^http(s)?:\/\/(.*?)\//, 'https://www.baidu.com/'))
        } else {
   
          callback(url)
        }
      })
    })
  })
}

子组件调用例子

下面展示一些 子组件调用代码

// An highlighted block
<template>
  <div class="merchant-create-modify-page">
    <el-form ref="form" :model="formData" :rules
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值