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;
}