@xuanqikai/one-click-upload
v1.1.0
Published
A CLI tool for one-click file upload to cloud storage services (OSS, TOS)
Maintainers
Readme
One-Click Upload
一个强大的命令行工具,用于一键上传文件和文件夹到云存储服务(阿里云 OSS、字节跳动 TOS)。
特性
- 🚀 一键上传 - 简单的命令即可上传文件或整个文件夹
- 🔧 多服务支持 - 支持阿里云 OSS 和字节跳动 TOS(火山引擎)
- 📊 进度显示 - 实时显示上传进度和速度
- 🔄 断点续传 - 支持大文件的断点续传功能
- 🔁 自动重试 - 网络异常时自动重试上传
- ⚙️ 配置管理 - 支持多个服务配置,轻松切换
- 📱 交互式界面 - 友好的命令行交互体验
- 🎯 批量上传 - 支持文件夹批量上传
- 📝 详细日志 - 完整的上传日志记录
安装
全局安装
npm i -g @xuanqikai/one-click-upload更新到最新版本
# 更新到最新版本
npm update -g @xuanqikai/one-click-upload
# 或重新安装最新版本
npm install -g @xuanqikai/one-click-upload@latest本地开发
git clone <repository-url>
cd one-click-upload
npm install
npm run build
npm link快速开始
1. 添加服务配置
首次使用需要添加云存储服务配置:
# 交互式添加配置
one-upload config add
# 或使用简短命令
ou config add支持的服务类型:
- 阿里云 OSS - 需要提供 region、accessKeyId、accessKeySecret、bucket
- 可选:CDN 自动刷新功能(需要 CDN AccessKey 和域名)
- 字节跳动 TOS - 需要提供 region、accessKeyId、accessKeySecret、bucket
- 可选:CDN 自动刷新功能(需要 CDN AccessKey 和域名)
2. CDN 自动刷新配置(可选)
如果使用阿里云 OSS 或字节跳动 TOS,可以配置 CDN 自动刷新功能:
# 在配置 OSS 或 TOS 服务时,会询问是否启用 CDN 自动刷新
one-upload config add
# 配置流程:
# 1. 选择服务类型:OSS 或 TOS
# 2. 输入基本配置:region、accessKeyId、accessKeySecret、bucket
# 3. 询问:Enable CDN auto refresh after upload for OSS/TOS? (y/n)
# 4. 如果选择 y,需要输入:
# - CDN Access Key ID
# - CDN Access Key Secret
# - CDN Domain (如:https://cdn.example.com)CDN 自动刷新功能说明:
- 🚀 自动触发:文件上传成功后自动刷新 CDN 缓存,无需额外命令
- 📱 实时更新:用户通过 CDN 访问到的文件始终是最新版本
- ⚙️ 可选功能:不影响基本上传功能,可根据需要启用
- 🔧 权限要求:需要对应云服务商的 CDN API 权限
- 🌍 服务支持:支持 OSS(阿里云)和 TOS(字节跳动)两种服务
- 📊 智能识别:自动识别文件和目录类型,使用对应的刷新方式
自动刷新工作流程:
文件上传成功 → 自动构建 CDN URL → 执行缓存刷新 → 显示刷新结果示例:
# 配置时启用 CDN 自动刷新后,上传文件时会自动刷新
one-upload photo.jpg images/
# ✅ 上传成功后会自动执行:✅ CDN 缓存刷新成功: https://cdn.example.com/images/photo.jpg (任务ID: xxxxx)3. 查看和管理配置
# 列出所有配置
one-upload config list
# 显示配置详情
one-upload config show <service-name>
# 测试配置是否有效
one-upload config test <service-name>
# 设置默认服务
one-upload config default <service-name>4. 上传文件和文件夹
基本上传方式
# 交互式上传(推荐新手使用)
one-upload
# 直接上传文件到指定目录(保持原文件名)
one-upload photo.jpg images/
# 结果:images/photo.jpg
# 上传文件到多级目录
one-upload document.pdf docs/2024/reports/
# 结果:docs/2024/reports/document.pdf
# 上传整个文件夹(保持完整目录结构)
one-upload ./my-project projects/
# 结果:projects/src/index.js, projects/package.json 等高级上传选项
# 使用指定服务
one-upload file.txt remote/path/ --service my-oss
# 覆盖已存在的文件
one-upload file.txt remote/path/ --overwrite
# 禁用断点续传
one-upload large-file.zip remote/ --no-resume
# 设置重试次数和分片大小
one-upload file.txt remote/ --max-retries 5 --chunk-size 5命令详解
配置管理
# 添加新的服务配置
one-upload config add
# 列出所有配置
one-upload config list
# 显示配置详情
one-upload config show <service-name>
# 更新配置
one-upload config update <service-name>
# 删除配置
one-upload config remove <service-name>
# 设置默认服务
one-upload config default <service-name>
# 测试配置
one-upload config test <service-name>上传命令
# 基本上传
one-upload <local-path> [remote-path] [options]
# 上传选项
--service, -s <name> 指定使用的服务名称
--overwrite, -o 覆盖已存在的文件
--resume, -r 启用断点续传(默认开启)
--max-retries <number> 最大重试次数(默认3次)
--chunk-size <size> 分片大小,单位MB(默认1MB)
--contents-only 只上传文件夹内容(不包含文件夹名)
--cache-control <value> 自定义缓存控制头(如 "no-cache")
--preload 上传完成后自动预热 CDN 缓存(需先配置 CDN)
--preload-options <json> 预热选项(JSON 格式,如:'{"area":"domestic","l2Preload":true}')配置示例
阿里云 OSS 配置
{
"name": "my-oss",
"type": "oss",
"config": {
"region": "oss-cn-hangzhou",
"accessKeyId": "your-access-key-id",
"accessKeySecret": "your-access-key-secret",
"bucket": "your-bucket-name",
"endpoint": "https://oss-cn-hangzhou.aliyuncs.com"
},
"isDefault": true
}字节跳动 TOS 配置
{
"name": "my-tos",
"type": "tos",
"config": {
"region": "cn-beijing",
"accessKeyId": "your-access-key-id",
"accessKeySecret": "your-access-key-secret",
"bucket": "your-bucket-name",
"endpoint": "https://tos-cn-beijing.volces.com",
"cdn": {
"accessKeyId": "your-cdn-access-key-id",
"accessKeySecret": "your-cdn-access-key-secret",
"cdnDomain": "https://cdn.example.com",
"autoRefresh": true
}
},
"isDefault": false
}CDN 功能详解
CDN 自动刷新 vs CDN 预热
工具提供了两种 CDN 相关功能,它们的作用和触发方式不同:
| 功能 | 触发方式 | 作用 | 适用场景 |
| ---------------- | --------------------- | ----------------------------------- | ---------------------------------------- |
| CDN 自动刷新 | 配置后自动触发 | 清除 CDN 缓存,强制回源获取最新内容 | 文件更新后需要立即清除旧缓存 |
| CDN 预热 | 使用 --preload 选项 | 主动将文件推送到 CDN 节点,提前缓存 | 大文件或重要文件,希望首次访问就命中缓存 |
推荐流程:
文件上传 → 自动刷新 CDN 缓存(清除旧内容)→ 使用 --preload 预热(填充新内容)CDN 自动刷新
功能说明
CDN 自动刷新在配置服务时启用,文件上传成功后自动触发,无需额外命令。它会清除 CDN 中的旧缓存,确保用户访问到最新内容。
配置方法
在配置 OSS 或 TOS 服务时,选择启用 CDN 自动刷新:
one-upload config add
# 当询问 "Enable CDN auto refresh after upload?" 时,选择 y
# 然后输入 CDN 相关配置信息配置示例
阿里云 OSS CDN 配置:
{
"name": "my-oss",
"type": "oss",
"config": {
"region": "oss-cn-hangzhou",
"accessKeyId": "your-access-key-id",
"accessKeySecret": "your-access-key-secret",
"bucket": "your-bucket-name",
"cdn": {
"accessKeyId": "your-cdn-access-key-id",
"accessKeySecret": "your-cdn-access-key-secret",
"cdnDomain": "https://cdn.example.com",
"autoRefresh": true
}
}
}字节跳动 TOS CDN 配置:
{
"name": "my-tos",
"type": "tos",
"config": {
"region": "cn-beijing",
"accessKeyId": "your-access-key-id",
"accessKeySecret": "your-access-key-secret",
"bucket": "your-bucket-name",
"cdn": {
"accessKeyId": "your-cdn-access-key-id",
"accessKeySecret": "your-cdn-access-key-secret",
"cdnDomain": "https://cdn.example.com",
"autoRefresh": true
}
}
}使用示例
# 配置启用自动刷新后,上传文件时会自动刷新 CDN 缓存
one-upload photo.jpg images/
# ✅ 输出:✅ CDN 缓存刷新成功: https://cdn.example.com/images/photo.jpg (任务ID: xxxxx)
# 上传文件夹时,每个文件上传成功后都会自动刷新
one-upload dist/ websites/
# ✅ 每个文件上传成功后都会显示刷新结果注意事项:
- ⚠️ 自动刷新需要消耗 CDN 刷新配额
- ⚠️ 刷新任务提交后需要一些时间才能生效(通常几分钟)
- ⚠️ 目录刷新会清除该目录下所有文件的缓存
CDN 预热功能
功能说明
--preload 选项允许您在上传文件完成后主动预热 CDN 缓存,将文件推送到 CDN 节点,确保首次访问时就能命中缓存,提升访问速度。
配置要求
要使用 CDN 预热功能,您需要在服务配置中添加 cdn 配置项:
{
"name": "my-tos",
"type": "tos",
"config": {
"region": "cn-beijing",
"accessKeyId": "your-access-key-id",
"accessKeySecret": "your-access-key-secret",
"bucket": "your-bucket-name",
"endpoint": "https://tos-cn-beijing.volces.com",
"cdn": {
"accessKeyId": "your-cdn-access-key-id",
"accessKeySecret": "your-cdn-access-key-secret",
"region": "cn-north-1",
"cdnDomain": "https://cdn.example.com"
}
}
}基本使用方法
# 上传单个文件并预热 CDN
one-upload photo.jpg images/ --preload
# 上传文件夹并预热所有文件
one-upload my-website/ websites/ --preload
# 上传并覆盖,同时预热
one-upload new-image.jpg images/ --overwrite --preload预热选项(--preload-options)
使用 --preload-options 可以配置高级预热选项(JSON 格式):
# 预热到国内节点
one-upload photo.jpg images/ --preload --preload-options '{"area":"domestic"}'
# 预热到全球节点
one-upload app.js js/ --preload --preload-options '{"area":"overseas"}'
# 启用二级预热(预热到 L2 节点,推荐重要文件使用)
one-upload index.html / --preload --preload-options '{"l2Preload":true,"area":"domestic"}'
# 自定义请求头预热
one-upload app.js js/ --preload --preload-options '{"area":"overseas","withHeader":{"Accept-Encoding":["gzip, deflate, br"]}}'
# 启用 HASH 预热(仅中国大陆有效)
one-upload large-file.zip files/ --preload --preload-options '{"l2Preload":true,"consistencyHash":true}'预热选项说明
| 选项 | 类型 | 说明 | 示例值 |
| ----------------- | --------- | ------------------------------------ | ------------------------------------------- |
| area | string | 预热区域 | "domestic"(国内)或 "overseas"(海外) |
| l2Preload | boolean | 是否启用二级预热 | true 或 false |
| withHeader | object | 自定义请求头 | {"Accept-Encoding":["gzip, deflate, br"]} |
| queryHashkey | boolean | 是否查询哈希键 | true 或 false |
| consistencyHash | boolean | 是否启用一致性哈希(仅中国大陆有效) | true 或 false |
预热工作流程
文件上传成功 → CDN 缓存刷新(如果配置了自动刷新)→ CDN 预热 → 用户访问命中缓存批量预热示例
# 上传整个目录并预热所有文件
one-upload dist/ production/ --preload
# 输出示例:
# 🔥 Starting CDN preload...
# Preloading 25 files...
# ✓ Preload completed: 25 successful, 0 failed最佳实践
- 重要文件使用二级预热:对于首页、核心 JS/CSS 等关键文件,建议使用
l2Preload: true - 合理使用预热区域:如果主要用户在国内,使用
area: "domestic";面向全球用户使用area: "overseas" - 结合自动刷新使用:先刷新旧缓存,再预热新内容,确保用户访问到最新文件
- 注意预热配额:预热会消耗 CDN 预热配额,请根据实际情况使用
详细使用指南
文件上传示例
1. 上传单个文件
# 上传图片到 images 目录
one-upload photo.jpg images/
# 远程路径:images/photo.jpg
# 上传文档到指定子目录
one-upload report.pdf documents/2024/
# 远程路径:documents/2024/report.pdf
# 上传视频文件
one-upload movie.mp4 videos/movies/
# 远程路径:videos/movies/movie.mp42. 上传文件夹(两种模式)
模式 1:上传整个文件夹(包含文件夹名)
# 不带尾部斜杠 - 上传整个文件夹
one-upload my-website websites/
# 结果:
# websites/my-website/index.html
# websites/my-website/css/style.css
# websites/my-website/js/app.js
# websites/my-website/images/logo.png模式 2:只上传文件夹内容(不包含文件夹名)
# 带尾部斜杠 - 只上传文件夹内容
one-upload my-website/ websites/
# 结果:
# websites/index.html
# websites/css/style.css
# websites/js/app.js
# websites/images/logo.png实际应用示例
# 上传项目到指定目录(保持项目名)
one-upload my-project backup/
# 结果:backup/my-project/...
# 直接部署网站内容(不要项目文件夹名)
one-upload dist/ websites/production/
# 结果:websites/production/index.html, websites/production/assets/...3. 智能缓存策略
工具会根据文件类型自动设置合适的缓存策略:
# 自动缓存策略
one-upload website/ production/
# 结果:
# index.html -> no-cache (不缓存,便于更新)
# *.html -> max-age=3600 (1小时缓存)
# *.js, *.css -> max-age=31536000 (1年缓存)
# 图片文件 -> max-age=31536000 (1年缓存)
# 自定义缓存策略
one-upload index.html production/ --cache-control "max-age=3600"
one-upload assets/ cdn/ --cache-control "max-age=86400"4. 批量上传不同类型文件
# 上传多媒体文件夹
one-upload ./media-files storage/
# 自动处理:
# storage/images/photo1.jpg
# storage/videos/clip1.mp4
# storage/documents/readme.txt
# storage/audio/music.mp35. CDN 预热功能
基本预热
# 上传文件并自动预热 CDN 缓存
one-upload index.html / --preload
# 上传目录并预热所有文件
one-upload dist/ /website/ --preload
# 覆盖上传并预热
one-upload new-image.jpg /images/ --overwrite --preload高级预热选项
# 预热到 L2 节点,仅中国内地
one-upload index.html / --preload --preload-options '{"l2Preload":true,"area":"domestic"}'
# 预热到全球,包含自定义头部
one-upload app.js /js/ --preload --preload-options '{"area":"overseas","withHeader":{"Accept-Encoding":["gzip, deflate, br"]}}'
# 开启 HASH 预热(仅中国大陆有效)
one-upload large-file.zip /files/ --preload --preload-options '{"l2Preload":true,"consistencyHash":true}'预热工作流程
文件上传 → CDN 缓存刷新 → 自动预热 → 用户访问命中缓存预热选项说明
area: 预热区域(domestic中国内地,overseas全球)l2Preload: 是否预热到 L2 节点(true推荐重要文件,false普通文件)withHeader: 自定义预热请求头部queryHashkey: 是否开启 hashkey 查询模式consistencyHash: 是否开启 HASH 预热(仅中国大陆有效)
实际使用场景
1. 网站部署
# 构建并上传网站
npm run build
one-upload dist/ websites/my-site/ --overwrite
# 结果:网站文件上传到 websites/my-site/ 目录2. 备份文件
# 备份重要文档
one-upload ./important-docs backups/$(date +%Y%m%d)/
# 结果:backups/20240716/contract.pdf, backups/20240716/report.docx
# 备份代码项目
one-upload ./my-project backups/projects/my-project-$(date +%Y%m%d)/3. 内容管理
# 上传用户头像
one-upload avatar.jpg users/avatars/
# 结果:users/avatars/avatar.jpg
# 上传产品图片
one-upload product-images/ catalog/products/
# 结果:catalog/products/product1.jpg, catalog/products/product2.jpg
# 上传博客图片
one-upload blog-images/ blog/2024/07/
# 结果:blog/2024/07/image1.png, blog/2024/07/image2.jpg4. 开发工具集成
# CI/CD 脚本示例
#!/bin/bash
echo "构建项目..."
npm run build
echo "上传到 CDN..."
one-upload dist/ cdn/releases/v$(cat package.json | grep version | cut -d'"' -f4)/ --overwrite
echo "上传静态资源..."
one-upload assets/ static/assets/ --service cdn-oss
echo "部署完成!"高级功能
断点续传
对于大文件(>1MB),工具会自动启用分片上传和断点续传:
# 启用断点续传(默认)
one-upload large-file.zip remote/large-file.zip --resume
# 禁用断点续传
one-upload large-file.zip remote/large-file.zip --no-resume批量上传优化
# 调整分片大小以优化上传速度
one-upload folder/ remote/folder/ --chunk-size 5
# 增加重试次数以提高成功率
one-upload folder/ remote/folder/ --max-retries 5最佳实践
1. 目录命名规范
# 推荐的目录结构
images/ # 图片文件
├── avatars/ # 用户头像
├── products/ # 产品图片
└── banners/ # 横幅图片
documents/ # 文档文件
├── contracts/ # 合同文件
├── reports/ # 报告文件
└── manuals/ # 手册文件
backups/ # 备份文件
├── 2024/ # 按年份分类
│ ├── 01/ # 按月份分类
│ └── 02/
└── projects/ # 项目备份2. 文件上传策略
# 小文件直接上传
one-upload small-file.txt documents/
# 大文件启用断点续传
one-upload large-video.mp4 videos/ --resume --chunk-size 10
# 批量文件使用文件夹上传
one-upload ./photo-album gallery/2024/vacation/3. 安全建议
- 定期轮换 AccessKey
- 使用最小权限原则配置 IAM 策略
- 不要在公共代码仓库中暴露配置信息
- 定期备份重要配置
故障排除
常见问题及解决方案
1. 配置相关问题
# 问题:配置验证失败
# 解决:测试配置是否正确
one-upload config test <service-name>
# 问题:找不到默认服务
# 解决:设置默认服务
one-upload config default <service-name>
# 问题:配置文件损坏
# 解决:重新添加配置
rm ~/.one-upload-config.json
one-upload config add2. 上传相关问题
# 问题:上传失败
# 解决:增加重试次数
one-upload file.txt remote/ --max-retries 5
# 问题:大文件上传中断
# 解决:启用断点续传
one-upload large-file.zip remote/ --resume
# 问题:网络不稳定
# 解决:减小分片大小
one-upload file.txt remote/ --chunk-size 13. 权限相关问题
- AccessKey 权限不足:确保 AccessKey 有对应 bucket 的写权限
- Bucket 不存在:检查 bucket 名称是否正确
- Region 不匹配:验证 region 设置是否与 bucket 所在区域匹配
- 网络访问限制:检查防火墙和网络策略
调试和日志
# 查看配置文件
cat ~/.one-upload-config.json
# 查看上传历史日志
tail -f ~/.one-upload-history.log
# 清除配置重新开始
rm ~/.one-upload-config.json
rm ~/.one-upload-history.log快速参考
命令速查表
配置管理
one-upload config add # 添加新配置
one-upload config list # 列出所有配置
one-upload config show <name> # 显示配置详情
one-upload config test <name> # 测试配置
one-upload config default <name> # 设置默认服务
one-upload config remove <name> # 删除配置文件上传
one-upload # 交互式上传
one-upload <local> <remote> # 直接上传
one-upload <local> <remote> -s <name> # 指定服务上传
one-upload <local> <remote> --overwrite # 覆盖上传
one-upload <local> <remote> --resume # 断点续传
one-upload <local> <remote> --preload # 上传并预热 CDN常用选项
-s, --service <name> # 指定服务名称
-o, --overwrite # 覆盖已存在文件
-r, --resume # 启用断点续传
--max-retries <number> # 最大重试次数
--chunk-size <size> # 分片大小(MB)
--preload # 上传后预热 CDN 缓存
--preload-options <json> # 预热选项(JSON 格式)
--cache-control <value> # 自定义缓存控制头
--help # 显示帮助
--version # 显示版本典型使用模式
# 1. 首次使用
one-upload config add
one-upload config test <service-name>
# 2. 日常上传
one-upload photo.jpg images/
one-upload my-project backup/ # 上传整个文件夹
one-upload my-project/ backup/ # 只上传文件夹内容
# 3. 批量部署
one-upload dist/ websites/production/ --overwrite # 部署网站内容
# 4. 大文件上传
one-upload large-file.zip backups/ --resume --chunk-size 10
# 5. CDN 功能使用
# 配置时启用自动刷新,上传后会自动刷新 CDN 缓存
one-upload photo.jpg images/
# 上传并预热 CDN(先刷新后预热)
one-upload index.html / --preload
# 高级预热选项
one-upload app.js js/ --preload --preload-options '{"area":"domestic","l2Preload":true}'开发
本地开发
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 构建
npm run build
# 运行测试
npm test
# 代码检查
npm run lint项目结构
src/
├── commands/ # CLI 命令实现
├── config/ # 配置管理
├── uploaders/ # 上传器实现
├── utils/ # 工具函数
├── types/ # 类型定义
└── __tests__/ # 测试文件贡献
欢迎提交 Issue 和 Pull Request!
许可证
MIT License
更新日志
完整使用示例
从零开始的完整流程
# 1. 全局安装
npm install -g one-click-upload
# 2. 添加 OSS 配置
one-upload config add
# 选择服务类型:Alibaba Cloud OSS
# 输入服务名称:my-oss
# 输入 Region:oss-cn-beijing
# 输入 Access Key ID:your-access-key-id
# 输入 Access Key Secret:your-access-key-secret
# 输入 Bucket Name:your-bucket-name
# 设为默认服务:Yes
# 3. 测试配置
one-upload config test my-oss
# ✓ Service 'my-oss' configuration is valid
# 4. 上传单个文件
one-upload photo.jpg images/
# ✓ Upload completed successfully
# File: photo.jpg
# Size: 2.5 MB
# URL: https://your-bucket.oss-cn-beijing.aliyuncs.com/images/photo.jpg
# 5. 上传文件夹
one-upload ./my-project projects/
# Upload Summary:
# ────────────────────────────────────────
# Total files: 15
# Successful: 15 (100.0%)
# Failed: 0
# Total size: 45.2 MB
# Duration: 12s
# 6. 查看所有配置
one-upload config list
# Configured Services:
# ────────────────────────────────────────────────────────────
# my-oss (default)
# Type: Alibaba Cloud OSS
# Bucket: your-bucket-name
# Region: oss-cn-beijing高级使用示例
# 添加 TOS 配置
one-upload config add
# 选择:ByteDance TOS (Volcano Engine)
# 使用特定服务上传
one-upload backup.zip backups/ --service my-tos
# 大文件上传(启用断点续传)
one-upload large-video.mp4 videos/ --resume --chunk-size 10
# 批量上传并覆盖
one-upload dist/ websites/production/ --overwrite --max-retries 3更新日志
v1.0.7
- ✨ 上传完成后改为交互式选择 CDN 刷新 / 预热,默认不执行,可重复操作直至选择“不执行”
- � 优化 CDN 刷新行为:目录上传时优先使用目录级刷新,单文件仍按文件刷新
- 🔥 优化 CDN 预热行为:预热始终针对本次上传的所有文件,而不仅仅是目录
- 📊 CDN 操作进度显示:刷新和预热过程增加进度 spinner,仅输出成功 / 失败汇总
- 🧹 精简 CDN 日志:批量刷新/预热时不再逐条打印每个文件 URL
v1.0.6
- 📚 添加一键更新 node 包脚本
v1.0.5
- 📚 完善文档(CDN 功能说明、命令示例、配置说明、快速参考等)
v1.0.4
- 🚀 CDN 功能增强(完善自动刷新与预热文档,补充配置示例和最佳实践)
v1.0.3
- 🌐 修复 TOS 上传 Cache-Control 相关问题(不存在时不写入)
v1.0.2
- 🎯 新增两种文件夹上传模式
one-upload folder backup/- 上传整个文件夹(包含文件夹名)one-upload folder/ backup/- 只上传文件夹内容(不包含文件夹名)
- 🌐 修复 Windows 路径兼容性问题(统一正斜杠,修复多级子目录)
- 🚀 智能缓存策略(为 HTML/JS/CSS/图片设置合理默认缓存,并支持
--cache-control自定义)
v1.0.1
- 🐛 修复文件存在性检查和
--overwrite解析问题 - 📝 补充文档和使用示例
v1.0.0
- 初始版本发布:支持 OSS/TOS、断点续传、进度显示、配置管理、文件/文件夹上传等基础能力
