# Go批量下载资源
**Repository Path**: liumou_site/gcd
## Basic Information
- **Project Name**: Go批量下载资源
- **Description**: 使用Go编写的批量下载工具,通过请求接口获取需要下载的URL进行下载
- **Primary Language**: Go
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-02-20
- **Last Updated**: 2025-09-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 Go批量下载工具 (GCD)
[](https://golang.org/)
[](https://docker.com/)
[](LICENSE)
[](https://gitee.com/liumou_site/gcd)
**🌟 高性能批量下载工具,支持多线程并发下载**
**📦 支持Docker部署和全平台可执行程序**
**🔧 通过接口获取URL列表进行智能批量下载**
---
## 📋 目录
- [🚀 Go批量下载工具 (GCD)](#-go批量下载工具-gcd)
- [📋 目录](#-目录)
- [✨ 功能特性](#-功能特性)
- [🎯 使用场景](#-使用场景)
- [⚙️ 参数配置](#️-参数配置)
- [🚀 快速开始](#-快速开始)
- [Docker部署](#docker部署)
- [Linux安装](#linux安装)
- [Linux更新](#linux更新)
- [📊 性能参数](#-性能参数)
- [🔧 高级配置](#-高级配置)
- [📸 效果展示](#-效果展示)
- [🛠️ 技术栈](#️-技术栈)
- [📁 项目结构](#-项目结构)
- [🔐 授权说明](#-授权说明)
- [📞 联系方式](#-联系方式)
- [⚖️ 免责声明](#️-免责声明)
---
## ✨ 功能特性
| 🎯 核心功能 | 🔥 高级特性 |
|------------|------------|
| ✅ 多线程并发下载 | 🚀 Docker容器化部署 |
| ✅ 接口驱动URL获取 | 🔧 灵活的配置参数 |
| ✅ 智能文件管理 | 📊 实时下载统计 |
| ✅ 跨平台支持 | 🛡️ 错误重试机制 |
| ✅ 断点续传支持 | 📝 详细日志记录 |
---
## 🎯 使用场景
- **🌐 批量资源下载**: 从API接口获取大量文件URL进行批量下载
- **📚 数据备份**: 定期备份重要网络资源到本地存储
- **🖼️ 媒体资源采集**: 高效下载图片、视频等多媒体文件
- **📄 文档归档**: 批量下载和归档重要文档资料
---
## ⚙️ 参数配置
```bash
Usage of urls:
-k string 设置授权Key值 (环境变量: UrlKey)
-s string 设置文件保存路径 (默认: "./Download")
-show 查看程序简介信息
-t int 设置同时下载文件数量 (默认: 5)
-u string 设置接口地址 (默认: "https://url.liumou.site")
-v 显示版本号
-d 开启debug调试模式
```
---
## 🚀 快速开始
### Docker部署
```bash
# 🐳 快速启动
docker run -tid --name gcd \
-e UrlKey=[授权码] \
-e URL=https://url.liumou.site \
-v /path/to/save:/root/Download \
ccr.ccs.tencentyun.com/liumou/gcd
```
### Linux安装
```bash
# 📥 一键安装脚本
f=install.sh; rm -f $f; wget -O ${f} https://gitee.com/liumou_site/gcd/raw/master/${f} && bash ${f}
```
### Linux更新
```bash
# 🔄 一键更新脚本
f=install.sh; rm -f $f; wget -O ${f} https://gitee.com/liumou_site/gcd/raw/master/${f} && bash ${f} update
```
---
## 📊 性能参数
| 参数 | 默认值 | 建议范围 | 说明 |
|------|--------|----------|------|
| 并发线程数 | 5 | 1-20 | 根据网络带宽和服务器性能调整 |
| 超时时间 | 30s | 10-60s | 网络请求超时设置 |
| 重试次数 | 3 | 1-5 | 失败下载重试机制 |
| 缓存大小 | 32KB | 16-128KB | 下载缓存缓冲区大小 |
---
## 🔧 高级配置
### 环境变量配置
```bash
# 🔑 授权配置
export UrlKey="your_authorization_key"
export URL="https://your-api-endpoint.com"
# 🚀 性能调优
export Thread=10 # 并发下载线程数
export Time_max=100 # 最大超时时间
export Time_mini=20 # 最小超时时间
export Concurrency=1 # 并发控制
```
### Docker Compose配置
```yaml
version: '3.8'
services:
gcd:
image: ccr.ccs.tencentyun.com/liumou/gcd
container_name: gcd
environment:
- UrlKey=your_key_here
- URL=https://url.liumou.site
- Thread=5
- TZ=Asia/Shanghai
volumes:
- ./downloads:/root/Download
restart: unless-stopped
```
---
## 📸 效果展示
### 📥 安装过程

### 🎯 使用效果

---
## 🛠️ 技术栈
| 类别 | 技术 |
|------|------|
| **编程语言** |  |
| **并发模型** | Goroutine + Channel |
| **网络库** | 标准库 net/http |
| **日志系统** | 自定义Logger |
| **容器化** | Docker + Ubuntu 22.04 |
| **依赖管理** | Go Modules |
---
## 📁 项目结构
```
gcd/
├── 📄 main.go # 主程序入口
├── 📁 model/ # 核心功能模块
│ ├── Data.go # 数据模型定义
│ ├── Start.go # 下载任务启动器
│ ├── download.go # 下载核心逻辑
│ ├── url.go # URL管理
│ ├── mkdir.go # 目录管理
│ ├── delete.go # 文件清理
│ └── env.go # 环境配置
├── 🐳 Dockerfile # 容器化配置
├── 📦 go.mod # 依赖管理
├── 🔧 install.sh # 安装脚本
├── 🚀 start.sh # 启动脚本
└── 📊 ver.sh # 版本管理
```
---
## 🔐 授权说明
> ⚠️ **重要提醒**: 本项目为授权使用软件,需要有效的授权码才能正常运行
### 授权特点
- ✅ **无设备数量限制**: 一个授权码可在多台设备使用
- ⏰ **时间限制**: 授权码具有有效期限制
- 🔒 **防滥用机制**: 避免对目标网站造成过大负载
### 获取授权
由于本项目会对目标网站资源产生请求负载,为避免滥用,我们不对外免费提供授权服务。
**如需使用,请通过以下方式联系获取授权:**
📧 **QQ咨询**: `1666867051`
> 💡 **联系时请备注**: `gcd` 以便快速处理
---
## 📞 联系方式
| 渠道 | 信息 |
|------|------|
| 📧 QQ咨询 | `1666867051` |
| 🏠 项目主页 | [https://liumou.site](https://liumou.site) |
| 📦 代码仓库 | [Gitee - gcd](https://gitee.com/liumou_site/gcd) |
| 👤 作者 | 坐公交也用券 |
---
## ⚖️ 免责声明
1. **🎯 使用目的**: 本工具仅用于合法的资源下载和数据备份用途
2. **⚠️ 合理使用**: 请合理设置下载参数,避免对目标服务器造成过大负载
3. **🔒 隐私保护**: 我们不会收集或存储用户的任何个人数据
4. **📋 合规要求**: 使用本工具时请遵守相关法律法规和目标网站的使用条款
---
### ⭐ 如果这个项目对您有帮助,欢迎给个Star支持一下!
**Made with ❤️ by 坐公交也用券**