# 资源桶资源上传工具 **Repository Path**: AbelChan/cloud-bucket-uploader ## Basic Information - **Project Name**: 资源桶资源上传工具 - **Description**: 资源桶资源上传工具,支持腾讯云/阿里云/字节云/亚马逊云 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-15 - **Last Updated**: 2025-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 资源桶资源上传工具 一个基于 Electron + TypeScript 的跨平台资源桶上传工具,支持腾讯云 COS、阿里云 OSS、字节云 TOS 和 AWS S3 四种云存储服务。 ## 功能特性 - 🎯 **可视化操作界面** - 现代化的用户界面,操作简单直观 - 📁 **智能目录管理** - 可视化设置本地资源目录和远程存储目录 - ☁️ **多云支持** - 支持腾讯云/阿里云/字节云/亚马逊云四种主流云存储 - 🔐 **安全配置管理** - 加密存储云服务密钥信息 - 🔍 **智能文件对比** - 自动检测文件变更,只上传新增和修改的文件 - 📊 **实时进度显示** - 可视化上传进度条和文件数量统计 - 🚀 **高性能上传** - 支持断点续传和并发上传 ## 支持的云服务 | 云服务商 | 服务名称 | 状态 | |---------|---------|------| | 腾讯云 | COS (Cloud Object Storage) | ✅ 支持 | | 阿里云 | OSS (Object Storage Service) | ✅ 支持 | | 字节云 | TOS (Torch Object Storage) | ✅ 支持 | | 亚马逊云 | S3 (Simple Storage Service) | ✅ 支持 | ## 系统要求 - Windows 10/11, macOS 10.14+, 或 Linux - Node.js 16.0 或更高版本 - 至少 100MB 可用磁盘空间 ## 安装和运行 ### 开发环境 1. **克隆项目** ```bash git clone cd 资源桶资源上传工具 ``` 2. **安装依赖** ```bash npm install ``` 3. **编译 TypeScript** ```bash npm run build ``` 4. **启动开发模式** ```bash npm run dev ``` ### 生产环境 1. **打包应用** ```bash npm run package ``` 2. **制作安装包** ```bash npm run make ``` ## 使用指南 ### 1. 配置云服务 首次使用需要配置云服务密钥: 1. 点击对应的云服务提供商卡片 2. 填写以下信息: - **Access Key ID**: 访问密钥 ID - **Secret Access Key**: 访问密钥密码 - **Region**: 服务区域 - **Bucket**: 存储桶名称 - **Endpoint**: 终端节点(可选) 3. 点击「测试连接」验证配置 4. 点击「保存配置」完成设置 ### 2. 选择本地目录 1. 点击「选择目录」按钮 2. 选择要上传的本地资源目录 3. 设置远程目录路径(默认为根目录 `/`) ### 3. 比较文件 1. 确保已配置云服务和选择本地目录 2. 点击「比较文件」按钮 3. 系统会自动分析文件差异,显示: - 新增文件数量 - 修改文件数量 - 未变更文件数量 - 总文件大小 ### 4. 开始上传 1. 文件比较完成后,点击「开始上传」 2. 实时查看上传进度: - 当前上传文件 - 文件进度 (当前/总数) - 大小进度 (已上传/总大小) - 上传速度 - 总体进度百分比 ## 配置文件 应用配置文件存储在以下位置: - **Windows**: `%APPDATA%/cloud-uploader-config/config.json` - **macOS**: `~/Library/Preferences/cloud-uploader-config/config.json` - **Linux**: `~/.config/cloud-uploader-config/config.json` > ⚠️ **安全提示**: 配置文件中的敏感信息(如密钥)已加密存储,请勿手动修改。 ## 项目结构 ``` 资源桶资源上传工具/ ├── src/ │ ├── main.ts # 主进程入口 │ ├── services/ # 业务服务 │ │ ├── ConfigManager.ts # 配置管理 │ │ ├── FileComparer.ts # 文件比较 │ │ ├── CloudUploader.ts # 上传管理 │ │ └── cloud/ # 云服务实现 │ │ ├── TencentCloudService.ts │ │ ├── AliyunCloudService.ts │ │ ├── BytedanceCloudService.ts │ │ └── AWSCloudService.ts │ └── renderer/ # 渲染进程 │ ├── index.html # 主界面 │ ├── styles.css # 样式文件 │ └── app.js # 前端逻辑 ├── dist/ # 编译输出 ├── package.json # 项目配置 ├── tsconfig.json # TypeScript 配置 ├── forge.config.js # Electron Forge 配置 └── README.md # 项目说明 ``` ## 技术栈 - **框架**: Electron 28.0+ - **语言**: TypeScript 5.3+ - **构建工具**: Electron Forge - **UI**: HTML5 + CSS3 + JavaScript - **云服务 SDK**: - 腾讯云: `cos-nodejs-sdk-v5` - 阿里云: `ali-oss` - 字节云: `@volcengine/tos` - AWS: `@aws-sdk/client-s3` ## 开发说明 ### 添加新的云服务支持 1. 在 `src/services/cloud/` 目录下创建新的服务类 2. 实现 `CloudServiceInterface` 接口 3. 在 `CloudUploader.ts` 中注册新服务 4. 更新 UI 界面添加新的提供商选项 ### 自定义配置 可以通过修改以下文件来自定义应用: - `src/renderer/styles.css` - 修改界面样式 - `forge.config.js` - 修改打包配置 - `package.json` - 修改应用信息和依赖 ## 常见问题 ### Q: 上传失败怎么办? A: 请检查: 1. 网络连接是否正常 2. 云服务配置是否正确 3. 存储桶权限是否足够 4. 文件路径是否包含特殊字符 ### Q: 如何重置配置? A: 删除配置文件目录下的所有文件,重启应用即可。 ### Q: 支持哪些文件格式? A: 支持所有文件格式,没有限制。 ### Q: 有文件大小限制吗? A: 文件大小限制取决于所选择的云服务提供商的限制。 ## 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 更新日志 ### v1.0.0 (2024-01-XX) - 🎉 首次发布 - ✨ 支持四大云服务商 - 🔧 完整的可视化界面 - 🚀 智能文件对比和上传功能