# DeployHub - 多平台部署工具

## 项目简介
DeployHub 是一个用于简化部署流程的工具，旨在帮助开发者更高效地管理和部署应用程序。它支持多种部署平台，包括 FTP、阿里云 OSS、腾讯云 COS 和火山引擎 TOS。

## 功能特点
- 支持多种部署平台（FTP、OSS、COS、TOS）
- 统一的配置管理
- 文件过滤功能
- 实时上传进度显示
- 灵活的错误处理

## 安装
```bash
npm -D install deployhub
```

## 使用方法

### 基本使用
```javascript
const { uploadViaFTP, uploadViaOSS, uploadViaCOS, uploadViaTOS, uploadDirectory } = require('deployhub');
const config = {
    "common": {
        "localPath": "./test_files/",
        "remotePath": "/",
        "ignoreExtensions": [
            ".map"
        ]
    },
    "ftp": {
        "host": "127.0.0.1",
        "user": "username",
        "password": "password",
        "port": 21
    },
    "oss": {
        "region": "oss-cn-beijing",
        "accessKeyId": "id",
        "accessKeySecret": "secret",
        "bucket": "keyflow"
    },
    "cos": {
        "SecretId": "id",
        "SecretKey": "secret",
        "Bucket": "test-1258437818",
        "Region": "ap-beijing"
    },
    "tos": {
        "accessKeyId": "id",
        "accessKeySecret": "secret",
        "region": "cn-beijing",
        "bucket": "test-deployhub",
        "remotePath": "."
    }
};

// FTP 上传
uploadDirectory(uploadViaFTP, config.ftp, config.common);

// OSS 上传
uploadDirectory(uploadViaOSS, config.oss, config.common);

// COS 上传
uploadDirectory(uploadViaCOS, config.cos, config.common);

// TOS 上传
uploadDirectory(uploadViaTOS, config.tos, config.common);
```

### 配置优先级
- 各平台配置中的 `localPath`、`remotePath` 和 `ignoreExtensions` 优先级高于公共配置
- 未配置时使用公共配置中的值

## 上传进度显示
上传过程中会实时显示进度，格式如下：

```
[平台名称] 当前文件序号/总文件数 [当前文件名称]
```

## 错误处理
- 上传失败时会输出详细的错误信息
- 不会中断整体上传流程，继续处理下一个文件
- 错误信息包含文件路径和具体错误原因

## 注意事项
1. 确保配置文件中的认证信息正确
2. 本地路径使用相对路径或绝对路径均可
3. 远程路径根据各平台要求配置
4. 文件过滤基于文件后缀名，不区分大小写

        