import { ensureRuntimeEnvLoaded } from './config/runtimeEnv'; import { loadObsCredentialsFromUrlIfNeeded } from './config/loadObsCredentialsFromUrl'; import type { UploadSummary } from './core/reporter'; import { OssService, uploadDirectory } from './middleware/OssService'; export type UploadOptions = { localDir: string; bucket: string; env?: string; suffix?: string; include?: string[]; exclude?: string[]; force?: boolean; mode?: string; }; export type UploadResult = UploadSummary; export type LatestFolderOptions = { bucket: string; prefix: string; env?: string; mode?: string; }; export async function upload(options: UploadOptions): Promise { ensureRuntimeEnvLoaded(options.mode); await loadObsCredentialsFromUrlIfNeeded(); const opt = { ...options, env: options.env || 'dev', bucket: options.bucket || 'hr-uat', }; return uploadDirectory(opt); } /** 查询前缀下一层最新的 yyyyMMddHHmmss 目录名。 */ export async function getLatestFolderName( options: LatestFolderOptions, ): Promise { ensureRuntimeEnvLoaded(options.mode); await loadObsCredentialsFromUrlIfNeeded(); return new OssService(options.env || 'dev').getLatestFolderName( options.bucket, options.prefix, ); }