@mwcp/ali-oss
Version:
Ali OSS Component for midway.js
141 lines (140 loc) • 5.82 kB
TypeScript
import type { TraceService } from '@mwcp/otel';
import { FnKey } from '@yuntools/ali-oss';
import type { BaseOptions, DataBase, DataCp, DataDownload, DataSign, DataStat, ProcessRet } from '@yuntools/ali-oss';
import type { CpOptions, DownloadOptions, InstanceConfig, LinkOptions, MkdirOptions, MvOptions, RmOptions, RmrfOptions, SignOptions, StatOptions, SyncLocalOptions, SyncRemoteOptions, UploadOptions } from './types.js';
/** 阿里云 OSS oss-utils 命令行封装组件 */
export declare class AliOssComponent {
protected readonly config: InstanceConfig;
traceService: TraceService;
private readonly client;
private readonly querySpanMap;
constructor(config: InstanceConfig);
/**
* 拷贝文件,
* - 拷贝本地文件/目录到远程建议使用 `upload()` 或者 `syncRemote()` 方法
* - 拷贝远程文件/目录到本地建议使用 `download()` 或者 `syncLocal()` 方法
*
* 若 force 为空或者 false,且目标文件存在时会卡在命令行提示输入阶段(无显示)最后导致超时异常
* @link https://help.aliyun.com/document_detail/120057.html
*/
cp(
/** 本地文件、目录或者远程 OSS 对象 */
src: string,
/** OSS 对象,不包括 bucket */
target: string, options?: CpOptions): Promise<ProcessRet<DataCp>>;
/**
* 上传本地文件到 OSS
* 若 force 为空或 false,且目标文件存在时会卡在命令行提示输入阶段(无显示)最后导致超时异常
* @link https://help.aliyun.com/document_detail/120057.html
*/
upload(
/** 本地目录或文件 */
src: string,
/** OSS 对象,不包括 bucket */
target: string, options?: UploadOptions): Promise<ProcessRet<DataCp>>;
/**
* 下载远程文件到本地
* 若 force 为空或 false,且目标文件存在时会卡在命令行提示输入阶段(无显示)最后导致超时异常
* @link https://help.aliyun.com/document_detail/120057.html
*/
download(
/** OSS 对象,不包括 bucket */
src: string,
/** 本地目录或文件 */
target: string, options?: DownloadOptions): Promise<ProcessRet<DataDownload>>;
/**
* 创建软链接
* @link https://help.aliyun.com/document_detail/120059.html
*/
createSymlink(
/** OSS 对象,不包括 bucket */
src: string,
/** OSS 软连接对象,不包括 bucket */
target: string, options?: LinkOptions): Promise<ProcessRet>;
/**
* 创建目录
* @link https://help.aliyun.com/document_detail/120062.html
*/
mkdir(
/** OSS 对象,不包括 bucket */
target: string, options?: MkdirOptions): Promise<ProcessRet>;
/**
* 移动云端的 OSS 对象
* 流程为先 `cp()` 然后 `rm()`
*/
mv(
/** OSS 源对象,不包括 bucket */
src: string,
/** OSS 目的对象,不包括 bucket */
target: string, options?: MvOptions): Promise<ProcessRet<DataStat | DataBase>>;
/**
* OSS 远程路径是否存在
*/
pathExists(
/** OSS 对象,不包括 bucket */
target: string, options?: StatOptions): Promise<boolean>;
/**
* 删除云对象,不支持删除 bucket 本身
* 如果在 recursive 为 false 时删除目录,则目录参数值必须以 '/' 结尾,否则不会删除成功
* @link https://help.aliyun.com/document_detail/120053.html
*/
rm(
/** OSS 对象,不包括 bucket */
target: string, options?: RmOptions): Promise<ProcessRet>;
/**
* 递归删除,相当于 `rm -rf`
* @link https://help.aliyun.com/document_detail/120053.html
*/
rmrf(
/** OSS 对象,不包括 bucket */
target: string, options?: RmrfOptions): Promise<ProcessRet>;
/**
* sign(生成签名URL)
* @link https://help.aliyun.com/document_detail/120064.html
*/
sign(
/** OSS 对象,不包括 bucket */
src: string, options?: SignOptions): Promise<ProcessRet<DataSign>>;
/**
* 查看 Bucket 和 Object 信息
* @link https://help.aliyun.com/document_detail/120054.html
*/
stat(
/** OSS 对象,不包括 bucket */
target: string, options?: StatOptions): Promise<ProcessRet>;
/**
* 同步 OSS 文件到本地
* - force 参数默认 true
* - 若 force 为 false,且目标文件存在时会卡在命令行提示输入阶段(无显示)最后导致超时异常
* @link https://help.aliyun.com/document_detail/256352.html
*/
syncLocal(
/** OSS 对象,不包括 bucket */
src: string,
/** 本地目录 */
target: string, options?: SyncLocalOptions): Promise<ProcessRet<DataCp>>;
/**
* 同步本地文件到 OSS
* - force 参数默认 true
* - 若 force 为 false,且目标文件存在时会卡在命令行提示输入阶段(无显示)最后导致超时异常
* @link https://help.aliyun.com/document_detail/193394.html
*/
syncRemote(
/** 本地目录 */
src: string,
/** OSS 对象,不包括 bucket */
target: string, options?: SyncRemoteOptions): Promise<ProcessRet<DataCp>>;
protected runner<T extends BaseOptions, R extends ProcessRet<DataBase> | boolean = ProcessRet<DataBase>>(options: RunnerOptions<T>): Promise<R>;
protected genOptions<T extends BaseOptions>(input: RunnerOptions<T>): _RunnerOption<T>;
protected tracer<T extends BaseOptions>(type: 'start' | 'finish' | 'error', id: {
time: symbol;
}, options: _RunnerOption<T>, err?: Error): Promise<void>;
}
interface RunnerOptions<T extends BaseOptions> {
fnKey: FnKey;
options: T | undefined;
src: string | undefined;
target: string | undefined;
}
type _RunnerOption<T extends BaseOptions> = InstanceConfig & T;
export {};