@zegoweb/z-save
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

媒资存储资源下载

1、 安装

# 方式一:npm/pnpm/yarn 安装,推荐使用
pnpm install @zegoweb/z-save -S
# 方式二:本地SDK包,接入使用,前提:安装minio
pnpm install minio -S
import xxx from 'xxx(local sdk)'

2、使用

// ES6
import { ZSave } from '@zegoweb/z-save';
const downloader = new ZSave({initConfig});

注意: 目前暂不支持ES Modules开发构建的项目(比如:vite

3、错误码

错误码 错误信息
-1 存储服务连接错误(大概率为accessKeyId/secretAccessKey/sessionToken过期)
-2 下载中错误

4、API说明

// npm 安装使用
import { ZSave } from '@zegoweb/z-save';
// 初始化下载器
const downloader = new ZSave(initConfig);
// 开始下载文件
const download = await downloader.download(bucketName, objectName, reName)

相关参数说明:

初始化: new ZSave(initConfig);

  • initConfig:

    • 类型:Object
    • 说明:文件下载初始化参数,这些参数可调用接口获取
    参数 参数类型 是否必填 参数说明
    host string 存储服务地址(含协议、主机、端口)
    accessKeyId string accessKey值
    secretAccessKey string secretKey值
    sessionToken string sessionToken值
import { ZSave } from '@zegoweb/z-save';
const initConfig = {
  'host': 'http://mm-test.zegonetwork.com:9000',
  'accessKeyId': '2WCBFAIZODMA0RGQ63FI',
  'secretAccessKey': '2Rj8TCpZ+pubYZw2Qr4XkcpR+ZWELFIOV2UxFE8J',
  'sessionToken': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiIyV0NCRkFJWk9ETUEwUkdRNjNGSSIsImV4cCI6MTY0NTE2ODQ0NSwicG9saWN5IjoiY29uc29sZUFkbWluIn0.cN9NilCH7O24UANSkufTd09QbWDne_pY_KsyRmq6h1pwIyRGipeFBvHjOqDFESx6N-vlJJtUxdHLqype7va-Aw',
};
const downloader = new ZSave(initConfig);

下载文件:downloader.download(bucketName, objectName, reName)

  • 参数说明:

    参数 参数类型 是否必填 参数说明
    bucketName string 桶名称
    objectName string 文件名称
    reName string 文件名称重命名
const download1 = this.downloader.download('testbucket', 'aaa.zip');

5、Demo案例

b9rcmd.gif

vue2:

<template>
  <div class="contain">
    <input type="text" placeholder="请输入资源所在桶" v-model="bucketName" />
    <input type="text" placeholder="请输入资源名称" v-model="objectName" /><br />
    <button @click="downloadFile">下载</button>
    <p style="color: grey">{{ message }}</p>
    <p style="color: green">{{ successMessage }}</p>
    <p style="color: red">{{ errorMessage }}</p>
  </div>
</template>

<script>
import { ZSave } from './download/index2'

const initConfig = {
        "host": "http://mm-test.zegonetwork.com:9000",
        "accessKeyId": "Q94SCYWC9TNJGK5CFSPR",
        "secretAccessKey": "Z3MqvRuDzXkzWEbMGT68J7O+C4ewLTbcfAH0vQQv",
        "sessionToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJROTRTQ1lXQzlUTkpHSzVDRlNQUiIsImV4cCI6MTY0NTU5NTc2OSwicG9saWN5IjoiY29uc29sZUFkbWluIn0.04e3Kqcelw0g5doOLUxBodkxeRDzPYUxGVduYzLmaAYgv38i5jyEAlA0d4aEnLoMAJTABzvTDI3lXVq1NQQcxg"
};

export default {
  data() {
    return {
      downloader: null,
      successMessage: '',
      errorMessage: '',
      bucketName: '',
      objectName: null,
      progress: 0,
    };
  },

  computed: {
    message () {
      return `文件名:${this.objectName},下载进度:${this.progress}%`;
    }
  },

  created() {
    this.downloader = new ZSave(initConfig);
  },

  methods: {
    // 下载文件
    async downloadFile() {
      this.successMessage = '';
      this.errorMessage = '';
        const download1 = this.downloader.download(this.bucketName, this.objectName);
        download1.on('progress', info => {
          console.log({info});
          this.progress = info.value;
        })
        download1.on('finish', info => {
          console.log({info});
          const {fileName, totalSize} = info;
          this.successMessage = `${fileName}已下载完成, 文件大小:${totalSize}`
        })
        download1.on('error', info => {
          const {code, fileName, message, data} = info;
          console.error(data);
          this.successMessage = `${fileName}下载错误: ${message}, 错误码:${code}, 更多错误内容,可查看返回对象data`
        })
  },
  }
}
</script>

如果提供了对应(其它)Demo源码, 具体可见demo示例

Readme

Keywords

Package Sidebar

Install

npm i @zegoweb/z-save

Weekly Downloads

1

Version

1.0.3

License

MIT

Unpacked Size

46.1 kB

Total Files

9

Last publish

Collaborators

  • zegoweb