2.6.10 • Published 5 months ago
@shencom/oss-upload v2.6.10
@shencom/oss-upload
使用说明
介绍
oss-upload
用于日常部署前端代码自动化脚本;
基于 rollup/typescript
构建,CommonJS
和 ESModule
;
安装
yarn add -D @shencom/oss-upload
# or
yarn add -D git+https://gitlab.shencom.cn/web/tools/oss-upload.git#master
使用
注意: 需要提前配置秘钥
配置秘钥
可以使用以下两种方式配置秘钥
- 可以使用
@shencom/cli
创建秘钥 (推荐)
# 全局配置:
pnpm add @shencom/cli && pnpm sc oss config
# 项目配置:
pnpm add @shencom/cli && pnpm sc oss config -p
- 在当前项目根目录创建
.env.oss.local
文件,并配置如下内容:
accessKeySecret=xxx
accessKeyId=xxx
初始化
- 类型
new OSS(ops: OssOptions): OSS
- 示例
import { OSS } from '@shencom/oss-upload';
const CLIENT = new OSS({
ignore: ['**/assets/**'], // 过滤文件同 glob.ignore 规则
ossPath: `xxx`, // oss基础路径。如: plugins/test/scloud/xxx
});
OssOptions
说明
参数 | 说明 | 类型 | 可选项 | 默认值 |
---|---|---|---|---|
ossPath | oss 基础路径 | string | 必填 | - |
bucket | bucket 名,一般不需要填写 | string | - | scplugins |
ignore | 过滤上传、删除文件,同 glob.ignore 规则 | string[] | - | - |
deleteIgnore | 过滤删除 oss 文件,合并ignore | string[] | - | - |
uploadIgnore | 过滤上传 oss 文件,合并ignore | string[] | - | - |
timeout | 超时时间 | number | - | 1000*60*10 |
方法
list
- 说明: 获取 oss 文件列表
- 类型:
OSS.list(ossPaths: string[] | string, returnType?: 'file' | 'dir' | 'all', options?: AliOSS.ListV2ObjectsQuery): Promise<AliOSS.ObjectMeta|string[]|Pick<AliOSS.ListObjectResult, 'objects' | 'prefixes'>[]>
- 参数:
ossPaths
: oss 路径returnType?
: 返回类型,默认:all
options?
: oss 配置,当returnType=all
时生效
- 示例:
const list = await CLIENT.list(ossPaths, returnType, options);
head
- 说明: 批量获取 oss 文件的 md5
- 类型:
OSS.head(ossFilePaths: string[]): Promise<FileData[]>
- 参数:
ossFilePaths
: oss 文件路径
- 示例:
const objects = await CLIENT.head(ossFilePaths);
put
- 说明: 删除 oss 文件
- 类型:
OSS.delete(ossPaths: string[]): void
- 参数:
ossPaths
: oss 文件路径
- 示例:
await CLIENT.delete(paths);
put
- 说明: 上传文件
- 类型:
OSS.put(paths: OssUploadItem[]): void
- 参数:
paths
: 上传路径对象
- 示例:
await CLIENT.put(paths);
clearVersionDir
- 说明: 清除版本号文件夹
- 类型:
OSS.clearVersionDir(paths: string[], limit?: number): void
- 参数:
paths
: 文件路径limit?
: 保留版本号目录个数,默认值:10
- 示例:
await CLIENT.clearVersionDir(paths, limit);
upload
- 说明: 代码上传
- 类型:
OSS.upload(ops: UploadOptions): void
- 参数:
ops
: 上传配置
- 示例: 参考下面说明
upload 使用说明
CLIENT.upload(ops: UploadOptions): Promise<void>
CLIENT.upload({
/**
* 构建后的目录
* 如:
* dirPath: 'xxx',
* dirPath: 'xxx/xxx',
*/
dirPath: 'xxx',
/** 是否开启本地文件和oss文件进行对比 */
// diff: false,
/** 开启debug,开启后不进行上传和删除操作 */
// debug: true,
/** 是否开启清除版本号目录,默认: false */
// isClearVersion: false,
/** 保留版本号目录个数,默认: 10 */
// versionLimit: 10,
/** 当前版本号 */
// version: 1.0.0;
/** 处理获取本地文件列表钩子 */
// localFileHook: (data) => data,
/** 处理oss路径列表钩子 */
// ossPathHook: (paths) => paths;
/** 处理获取oss文件列表钩子 */
// ossFileHook: (data) => data,
/** 上传前钩子 */
// beforeUploadHook: (data) => data,
/** 删除前钩子 */
// beforeDeleteHook: (data) => data,
})
.then(() => {
// 成功
})
.catch(() => {
// 失败
});
UploadOptions
说明
参数 | 说明 | 类型 | 可选项 | 默认值 |
---|---|---|---|---|
dirPath | 目录路径 | string | 必填 | - |
diff | 开启本地文件和 oss 文件进行对比,支持命令行参数 --diff | boolean | - | true |
debug | 开启后不进行上传和删除操作,支持命令行参数 --debug | boolean | - | false |
version | 当前版本号 | string | - | - |
versionLimit | 保留版本号目录个数 | number | - | 10 |
isClearVersion | 是否开启清除版本号目录 | boolean | - | false |
localFileHook | 处理获取本地文件列表钩子 | (data) => data | 需要返回值 | - |
ossPathHook | 处理 oss 路径列表钩子 | (data) => data | 需要返回值 | - |
ossFileHook | 处理获取 oss 文件列表钩子 | (data) => data | 需要返回值 | - |
beforeUploadHook | 上传前钩子 | (data) => data | 需要返回值 | - |
beforeDeleteHook | 删除前钩子 | (data) => data | 需要返回值 | - |
diff
属性详细描述
对比规则:
- 本地存在,oss 不存在: 上传
- 本地存在,oss 存在: 覆盖
- 本地不存在,oss 存在: 删除
工具属性和方法说明
属性
参数 | 说明 | 类型 |
---|---|---|
Mode | 构建模式 | build \| serve |
Env | 构建环境 | tst \| production \| uat |
envName | 环境名 | 测试服 \| UAT \| 正式服 |
isTst | 测试环境 | boolean |
isUat | UAT 环境 | boolean |
isPro | 正式环境 | boolean |
isUpload | 跳过打包,直接上传 | boolean |
isDebug | 是否开启 debug | boolean |
isBuild | 打包模式 | boolean |
isServe | 开发模式 | boolean |
branch | 当前分支名 | string |
_argv | 参数解析同minimist(process.argv) | minimist.ParsedArgs |
spinner | spinner 实例 | ora.Ora |
方法
md5
- 说明: md5 加密
- 类型:
(val: string | Buffer) => string
- 返回值:
boolean
isFile
- 说明: 文件是否存在
- 类型:
(filePath: string) => boolean
- 返回值:
boolean
getCliParam
- 说明: 获取命令行参数
- 类型:
() => string[]
- 返回值:
string[]
confirm
- 说明: 提示确认操作
- 类型:
(message: string) => Promise<boolean>
- 返回值:
Promise<boolean>
verifyBuild
- 说明:
验证打包 git 分支 是否对应master => 正式
uat => UAT
- 类型:
(message: string) => boolean
- 返回值:
boolean
2.6.10
5 months ago
2.6.8-alpha.0
8 months ago
2.6.3
10 months ago
2.6.2
11 months ago
2.6.5
10 months ago
2.6.4
10 months ago
2.6.7
10 months ago
2.6.6
10 months ago
2.6.9
6 months ago
2.6.8
7 months ago
2.6.2-alpha.1
11 months ago
2.6.2-alpha.0
11 months ago
2.6.1
1 year ago
2.6.0
1 year ago
2.6.1-alpha.0
1 year ago
2.6.1-alpha.1
1 year ago
2.5.8-alpha.1
1 year ago
2.5.8-alpha.0
1 year ago
2.5.8-alpha.2
1 year ago
2.5.6
1 year ago
2.5.7
1 year ago
2.5.4
1 year ago
2.5.3
1 year ago
2.5.5
1 year ago
2.5.2
2 years ago
2.5.0
2 years ago
2.5.1
2 years ago
2.4.2
2 years ago
2.3.0
2 years ago
2.4.1
2 years ago
2.4.0
2 years ago
2.2.5
2 years ago
2.2.6
2 years ago
2.2.1
3 years ago
2.2.0
3 years ago
2.2.3
2 years ago
2.2.2
3 years ago
2.2.4
2 years ago
2.1.0
3 years ago
2.0.2
3 years ago
2.0.1
3 years ago
2.0.0
3 years ago
1.5.0
3 years ago
1.4.4
3 years ago