@yolanda-qn/qiniu-upload-cli

上传项目文件到七牛云

Usage no npm install needed!

<script type="module">
  import yolandaQnQiniuUploadCli from 'https://cdn.skypack.dev/@yolanda-qn/qiniu-upload-cli';
</script>

README

@yolanda-qn/qiniu-upload-cli

上传项目文件到七牛云

Usage

yarn add @yolanda-qn/qiniu-upload-cli -D

命令

Usage: @yolanda-qn/qiniu-upload-cli <command> [options]

命令:
  index.js init    在当前目录初始化一个qiniuupload.config.js
  index.js upload  上传文件 输入 upload --help 查看帮助信息

选项:
  --version  显示版本号                                                   [布尔]
  --help     显示帮助信息                                                 [布尔]

init

在当前目录下初始化一个 qiniuupload.config.js

# 初始化配置文件
qiniu-upload-cli init

upload

上传文件到七牛云

$ node dist/lib/index.js upload --help
index.js upload

上传文件 输入 upload --help 查看帮助信息

选项:
      --version           显示版本号                                      [布尔]
      --help              显示帮助信息                                    [布尔]
  -A, --accessKey         七牛云的ACCESS_KEY                            [字符串]
  -S, --secretKey         七牛云的SECRET_KEY                            [字符串]
  -B, --bucket            要上传的存储空间                              [字符串]
  -Z, --zone              区域服务器。可选:华东 | 华北 | 华南 | 北美   [字符串]
  -K, --key               文件名。可使用 $(key)指代原文件名。例如:docs/$(key)
                                                                        [字符串]
  -D, --domain            服务器域名                                    [字符串]
      --files             目标文件。支持glob路径。使用,隔开多个路径     [字符串]
      --baseUrl           基路径                                        [字符串]
      --isRefreshCDN      是否需要刷新 CDN                 [布尔] [默认值: true]
  -V, --verbose           显示详细信息                                    [布尔]
      --coverFileIfExist  是否覆盖已存在的文件                            [布尔]
      --interactive       是否与命令行进行确认交互                        [布尔]
      --autoRetry         是否自动重发失败的文件           [布尔] [默认值: true]
      --retryTimes        重新尝试次数                        [数字] [默认值: 3]
  -C, --config            配置文件。默认为当前目录下的 qiniuupload.config.js
                                                                        [字符串]
# 在package.json中添加upload命令
{
  "scripts": {
    "upload": "qiniu-upload-cli upload"
  }
}

在代码中使用

import { QiniuUploader } from '@yolanda-qn/qiniu-upload-cli/lib/QiniuUploader';

const uploader = new QiniuUploader(/* ProjectUploadConfig */{
  accessKey: 'XXX',
  secretKey: 'XXX',
  bucket: 'XXX',
  zone: '华南',
  key: 'docs/$(key)',
  domain: 'https://xxxx.com',
  files: 'dist/**',
  baseUrl: 'dist',
  isRefreshCDN: true,
  coverFileIfExist: true,
});

uploader.uploadFiles().finally(() => {
  console.log('成功的文件', uploader.succeedFilesPool);
  console.log('失败的文件', uploader.failedFilesPool);
});

UploadConfig

export interface ProjectUploadConfig {
  // ACCESS_KEY
  accessKey: string;
  // SECRET_KEY
  secretKey: string;
  // 要上传的空间
  bucket: string;
  // 区域
  zone: '华东' | '华北' | '华南' | '北美';
  // 文件名。可使用 $(key)指代原文件名
  // 我们可以这样添加前缀 `docs/$(key)`
  key: string | ((key: string) => string);
  // 服务器域名
  domain: string;
  // 目标文件。支持glob路径。可用,隔开多个路径
  files: string[] | string;
  // 基路径
  // 例如 files: ['dist/**'],dist目录下有index.html,如果没有配置baseUrl,那么文件的key默认为dist/index.html
  // 如果baseUrl设置为 dist,那么dist/index.html的key默认为相对地址 index.html
  baseUrl: string;
  // 是否需要刷新 cdn
  isRefreshCDN: false,
  // 额外的七牛配置
  qiniuConfig?: Qiniu.conf.ConfigOptions;
  // 是否显示详细信息
  verbose?: boolean;
  // 是否覆盖已存在的文件
  coverFileIfExist?: boolean;
  // 是否与命令行进行确认交互
  interactive?: boolean;
  // 是否自动重发失败的文件
  autoRetry?: boolean;
  // 重新尝试次数
  retryTimes?: number;
}