UNPKG

@yuntools/ali-oss

Version:

阿里云 OSS 命令行工具 ossutil 封装,支持 ESM,CJS 导入,提供 TypeScript 类型定义

213 lines 7.66 kB
/// <reference types="node" resolution-mode="require"/> export type ConfigPath = string; export declare enum PlaceholderKey { src = "__src__", dest = "__dest__", target = "__target__", bucket = "bucket", bucketName = "bucketname", /** * 对于远程目录进行编码,并且添加 `oss://` 前缀 * 不适用于本地目录 */ encodeSource = "encodeSource", /** * 对于远程目录进行编码,并且添加 `oss://` 前缀 */ encodeTarget = "encodeTarget" } export declare enum ACLKey { /** 继承Bucket的读写权限 */ default = "default", /** 有该Bucket的拥有者可以对该Bucket内的文件进行读写操作,其他人无法访问该Bucket内的文件 */ private = "private", /** * 只有Bucket拥有者可以对该Bucket内的文件进行写操作,其他用户(包括匿名访问者)都可以对该Bucket中的文件进行读操作。 * 这有可能造成您数据的外泄以及费用激增,如果被人恶意写入违法信息还可能会侵害您的合法权益。 * 除特殊场景外,不建议您配置此权限 */ publicRead = "public-read", /** * 任何人(包括匿名访问者)都可以对该Bucket内文件进行读写操作。 * 这有可能造成您数据的外泄以及费用激增, * \*\*请谨慎操作\*\* */ publicReadWrite = "public-read-write" } export interface ProcessResp { /** * 0: success, others: error */ readonly exitCode: number; readonly exitSignal: string; readonly stdout: string; readonly stderr: string; } export declare enum DataKey { elapsed = "elapsed", averageSpeed = "averageSpeed", acl = "ACL", acceptRanges = "Accept-Ranges", contentLength = "Content-Length", contentMd5 = "Content-Md5", contentType = "Content-Type", etag = "Etag", lastModified = "Last-Modified", owner = "Owner", xOssHashCrc64ecma = "X-Oss-Hash-Crc64ecma", xOssObjectType = "X-Oss-Object-Type", xOssStorageClass = "X-Oss-Storage-Class", link = "link", httpUrl = "httpUrl", httpShareUrl = "httpShareUrl", succeedTotalNumber = "succeedTotalNumber", succeedTotalSize = "succeedTotalSize", uploadDirs = "uploadDirs", uploadFiles = "uploadFiles", /** sync between cloud */ copyObjects = "copyObjects", downloadObjects = "downloadObjects" } export type PickFunc = (input: string, rule: RegExp, debug: boolean) => string | number | undefined; export declare enum FnKey { cp = "cp", download = "download", link = "createSymlink", mkdir = "mkdir", mv = "mv", pathExists = "pathExists", probeUpload = "probeUpload", rm = "rm", rmrf = "rmrf", sign = "sign", stat = "stat", syncCloud = "syncCloud", syncLocal = "syncLocal", syncRemote = "syncRemote", upload = "upload" } export declare enum CmdKey { cp = "cp", download = "cp", link = "create-symlink", createSymlink = "create-symlink", mkdir = "mkdir", mv = "mv", probeUpload = "probe", rm = "rm", rmrf = "rm", sign = "sign", stat = "stat", syncCloud = "sync", syncLocal = "sync", syncRemote = "sync", upload = "cp" } /** 扁担参数名映射 */ export declare enum MKey { accessKeyId = "access-key-id", accessKeySecret = "access-key-secret", stsToken = "sts-token", /** 设置分片大小,单位为字节 */ partSize = "part-size", /** 文件名称的编码方式。取值为url。如果不指定该选项,则表示文件名称未经过编码 */ encodingType = "encoding-type", /** 上传链接子目录,默认不上传 */ enableSymlinkDir = "enable-symlink-dir", /** 批量操作时不忽略错误 */ disableIgnoreError = "disable-ignore-error", /** 仅上传当前目录下的文件,忽略子目录及子目录下的文件 */ onlyCurrentDir = "only-current-dir", /** 设置断点续传文件的大小阈值,单位为字节 */ bigfileThreshold = "bigfile-threshold", /** 指定断点续传记录信息所在的目录 */ checkpointDir = "checkpoint-dir", /** 指定保存上传文件时的快照信息所在的目录。在下一次上传文件时,ossutil会读取指定目录下的快照信息进行增量上传 */ snapshotPath = "snapshot-path", /** 表示上传文件时不为目录生成Object */ disableCrc64 = "disable-crc64", /** Object 的指定版本。仅适用于已开启或暂停版本控制状态 Bucket下的 Object */ versionId = "version-id", /** * Object 的所有版本。 * 仅适用于已开启或暂停版本控制状态 Bucket 下的 Object, * 且同一个删除示例中仅允许选择--version-id或--all-versions其中一个选项 */ allVersions = "all-versions", /** 客户端读超时的时间,单位为秒,默认值为1200 */ readTimeoutSec = "read-timeout", /** 客户端连接超时的时间,单位为秒,默认值为120 */ connectTimeoutSec = "connect-timeout", /** 超时秒 */ timeoutSec = "timeout", /** 参数名typo */ trafficLimit = "trafic-limit", disableEncodeSlash = "disable-encode-slash" } export interface Config { accessKeyId?: string | undefined; accessKeySecret?: string | undefined; stsToken?: string | undefined; endpoint?: string | undefined; } export declare enum Msg { accessDenied = "AccessDenied", cloudFileAlreadyExists = "Cloud file already exists", cloudConfigFileNotExists = "Cloud config file not exists", noSuchBucket = "NoSuchBucket" } export type DownLinks = { [key in NodeJS.Platform]?: string | undefined; }; /** * ossutil 的通用选项,可以在大部分命令中使用 * @link https://help.aliyun.com/document_detail/50455.htm */ export interface BaseOptions extends Config { /** * 是否对 `oss://bucket_name` 后面的key(目录名称)进行编码。 * - 若输入参数已经被编码(比如从操作结果中获取),则需要显示设置为 false * - 若为本地目录,则不能设置为 true * @default false */ [PlaceholderKey.encodeSource]?: boolean | undefined; /** * 是否对 `oss://bucket_name` 后面的key(目录名称)进行编码。 * 若输入参数已经被编码(比如从操作结果中获取),则需要显示设置为 false * @default true */ [PlaceholderKey.encodeTarget]?: boolean | undefined; /** `oss://bucket_name` */ [PlaceholderKey.bucket]?: string | undefined; /** * 客户端连接超时的时间,单位为秒, * @default 120 */ connectTimeoutSec?: number | undefined; /** * 客户端读超时的时间,单位为秒, * @default 1200 */ readTimeoutSec?: number | undefined; /** 在当前工作目录下输出ossutil日志文件ossutil.log。该选项默认为空,表示不输出日志文件 */ loglevel?: 'info' | 'debug' | undefined; } export interface DataBase { /** * @example 0.303190 */ [DataKey.elapsed]: string | undefined; } export interface ProcessRet<T extends DataBase = DataBase> { readonly data: T | undefined; readonly stdout: string; readonly stderr: string; /** * 0: success, others: error */ readonly exitCode: number; readonly exitSignal: string; } export type ParamMap = Map<string, string | number | boolean>; export type ProcessInputFn = (input: any | undefined, globalConfig: Config | undefined) => Promise<ParamMap>; //# sourceMappingURL=types.d.ts.map