1.0.1 • Published 1 year ago

@class_liangmu/oss-upload v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

oss文件上传

官方文档

正常使用封装后的upload或uploadPromise方法即可

注意事项

1.meta中的数据会被放到请求头中 需要对参数进行encodeURIComponent编码

初始化

const uOSS = new UOSS({
  // 必传 刷新token方法 支持promise callback
  // callback
  // refreshSTSToken: (done) => {
  //   axios.get('http://192.168.22.242:8003/tools/test/osstoken/')
  //     .then(res => {
  //       done({
  //         accessKeyId: res.data.token.AccessKeyId,
  //         accessKeySecret: res.data.token.AccessKeySecret,
  //         stsToken: res.data.token.SecurityToken,
  //         Expirationres: res.data.token.Expiration
  //       })
  //     })
  // },
  // promise
  refreshSTSToken: async () => {
    const res = await axios.get('http://192.168.22.242:8003/tools/test/osstoken/')
    return {
      accessKeyId: res.data.token.AccessKeyId,
      accessKeySecret: res.data.token.AccessKeySecret,
      stsToken: res.data.token.SecurityToken,
      Expirationres: res.data.token.Expiration
    }
  },
  // 文件上传前缀
  // 非必传 默认 test/
  prefix: 'bms/',
  // 非必传 默认 oss-cn-shanghai
  region: 'oss-cn-shanghai',
  // 非必传 默认 ops-bms-prod-10001-oss
  bucket: 'ops-bms-prod-10001-oss'
})

使用

  • simpleUpload 普通上传
  • multipartUpload 分片上传
  • signatureUrl 生成url
  • delete 删除文件
  • deleteMulti 批量删除
  • list 获取文件列表

以上方法在原方法中进行了包装 支持prommise callback 最后一个参数为callback callback 第一个参数为error 第二个参数为reuslt

// 例 获取文件列表
uOSS.list((err, result) => {
  console.log(result)
})
  • abortMultipartUpload 中断分片上传
  • stop 暂停上传

以上为同步方法

  • download 下载

第一个参数为objectname 第二个为下载后的文件名

uOSS.download('bms/yuan-test-1.gif', 'test.html')
  • upload 封装后的文件上传
// Array<File | IFileInfoOption>
// 支持blob[] 或者 { file: blob, config: {} }
uploadInstance = uOSS.upload(e.target.files)
  // 上传进度 多次执行
  .on('process', (fileInfo) => {
    console.log('html-process', fileInfo)
  })
  // 上传成功 根据文件数量 多次执行
  .on('success', (fileInfo) => {
    console.log('html-success', fileInfo)
  })
  // 上传失败 根据文件数量 多次执行
  .on('fail', (err, fileInfo) => {
    console.log('html-fail', err, fileInfo)
  })
  // 全部上传成功 执行一次
  .on('successAll', (fileList) => {
    console.log('html-successAll', fileList)
  })
  // 代码错误 执行一次
  .on('error', (err) => {
    console.log('html-error', err)
  })
  // 最终执行 执行一次 无论报错还是成功
  .on('finally', (fileList) => {
    console.log('html-finally', fileList)
  })