2.6.10 • Published 5 months ago

@shencom/oss-upload v2.6.10

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
5 months ago

@shencom/oss-upload

使用说明

介绍

oss-upload 用于日常部署前端代码自动化脚本;

基于 rollup/typescript 构建,CommonJSESModule;

安装

yarn add -D @shencom/oss-upload
# or
yarn add -D git+https://gitlab.shencom.cn/web/tools/oss-upload.git#master

使用

注意: 需要提前配置秘钥

配置秘钥

可以使用以下两种方式配置秘钥

  1. 可以使用 @shencom/cli 创建秘钥 (推荐)
# 全局配置:
pnpm add @shencom/cli && pnpm sc oss config

# 项目配置:
pnpm add @shencom/cli && pnpm sc oss config -p
  1. 在当前项目根目录创建 .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 说明
参数说明类型可选项默认值
ossPathoss 基础路径string必填-
bucketbucket 名,一般不需要填写string-scplugins
ignore过滤上传、删除文件,同 glob.ignore 规则string[]--
deleteIgnore过滤删除 oss 文件,合并ignorestring[]--
uploadIgnore过滤上传 oss 文件,合并ignorestring[]--
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 文件进行对比,支持命令行参数 --diffboolean-true
debug开启后不进行上传和删除操作,支持命令行参数 --debugboolean-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
isUatUAT 环境boolean
isPro正式环境boolean
isUpload跳过打包,直接上传boolean
isDebug是否开启 debugboolean
isBuild打包模式boolean
isServe开发模式boolean
branch当前分支名string
_argv参数解析同minimist(process.argv)minimist.ParsedArgs
spinnerspinner 实例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