upload.cos
递归上传本地目录或文件到腾讯云 COS(依赖注入,支持并发与进度)。
前置依赖
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.COS | COSConstructor | cos-nodejs-sdk-v5 |
deps.existsSync / statSync / readdirSync | 文件系统 | 遍历本地目录 |
deps.readFileSync / readFile? | 读文件 | 上传内容 |
deps.join / basename / relative / normalize | Path | 云端 Key 计算 |
deps.log / error | Console | 日志 |
deps.getSecret | (type) => TencentCloudSecret | null | SecretId/Key |
环境要求
- Node.js
cos-nodejs-sdk-v5
函数签名
typescript
function uploadToCOS(
options: UploadToCOSOptions,
deps: UploadToCOSDeps,
): Promise<UploadToCOSResult>类型见 zcw-shared/types/tencent-cloud。
参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.localPath | string | 是 | 本地文件或目录 |
options.bucket | string | 是 | 存储桶名称 |
options.region | string | 是 | 地域 |
options.cloudPath | string | 否 | COS 前缀,默认 / |
options.secretType | SecretType | 是 | 密钥类型 |
options.includeRootFolder | boolean | 否 | 是否包含根目录名 |
options.concurrency | number | 否 | 并发数,默认 10 |
options.showProgress | boolean | 否 | 控制台进度 |
返回值
| 类型 | 说明 |
|---|---|
UploadToCOSResult | { success, message?, uploadedCount?, failedFiles? } |
工作原理
- 校验
localPath与密钥。 - 递归收集文件列表,按
relative计算对象 Key。 - 并发
putObject,可选进度回调。 - 汇总失败文件列表;全部成功则
success: true。
异常
配置错误返回 { success: false, message };单文件失败记入 failedFiles。