diff --git a/README.md b/README.md new file mode 100644 index 0000000..17f1fc9 --- /dev/null +++ b/README.md @@ -0,0 +1,104 @@ +# iCloud Photos Sync + +使用 Docker 自动同步 iCloud 照片到本地。 + +## 快速开始 + +### 1. 配置 + +```bash +cp .env.example .env +``` + +编辑 `.env` 文件: + +```env +APPLE_ID=your@icloud.com +SYNC_INTERVAL=86400 +PHOTOS_PATH=./photos +``` + +### 2. 启动 + +```bash +docker compose up -d +``` + +### 3. 认证 + +```bash +# PowerShell +.\icloud.ps1 auth + +# Bash +./icloud.sh auth +``` + +按提示输入密码和 Apple 发送的验证码。 + +## 管理命令 + +```bash +.\icloud.ps1 <命令> # PowerShell +./icloud.sh <命令> # Bash +``` + +| 命令 | 说明 | +|------|------| +| `auth` | 重新认证(Cookie 过期时使用) | +| `logs` | 查看实时日志 | +| `status` | 查看容器状态 | +| `restart` | 重启容器 | +| `sync` | 立即触发同步 | + +## 配置说明 + +### 环境变量 (.env) + +| 变量 | 说明 | 默认值 | +|------|------|--------| +| `APPLE_ID` | Apple ID | 必填 | +| `SYNC_INTERVAL` | 同步间隔(秒) | 86400 (24h) | +| `PHOTOS_PATH` | 照片保存路径 | ./photos | + +### Docker Compose 配置 + +更多选项可在 `docker-compose.yml` 中配置: + +| 变量 | 说明 | +|------|------| +| `folder_structure` | 文件夹结构,如 `{:%Y/%m}` | +| `skip_videos` | 跳过视频 | +| `skip_live_photos` | 跳过实况照片 | +| `convert_heic_to_jpeg` | HEIC 转 JPEG | +| `auto_delete` | 同步删除 | +| `recent_only` | 只下载最近 N 张 | +| `until_found` | 增量同步优化 | + +完整配置参考:[boredazfcuk/docker-icloudpd](https://github.com/boredazfcuk/docker-icloudpd/blob/master/CONFIGURATION.md) + +## 目录结构 + +``` +icloud-sync/ +├── docker-compose.yml # Docker 配置 +├── .env # 环境变量(不提交到 Git) +├── .env.example # 环境变量示例 +├── icloud.ps1 # PowerShell 管理脚本 +├── icloud.sh # Bash 管理脚本 +├── config/ # Cookie 和认证信息 +└── photos/ # 下载的照片 + └── 2026/ + └── 01/ +``` + +## 注意事项 + +- Cookie 约 30 天过期,届时需重新认证:`.\icloud.ps1 auth` +- 首次同步大量照片可能需要较长时间 +- 建议设置 `skip_check: "true"` 以提高大库同步性能 +- 中国区 iCloud 需设置 `icloud_china` 和 `auth_china` 为 `true` + +## License + +MIT diff --git a/docker-compose.yml b/docker-compose.yml index 49248b8..6b88884 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,7 +17,7 @@ services: synchronisation_interval: ${SYNC_INTERVAL:-86400} # 同步间隔(秒):21600(6h)/43200(12h)/86400(24h) download_delay: 0 # 首次下载延迟(分钟) skip_check: "true" # 跳过新文件检查(大库必须开启) - download_threads: 10 # 下载线程数 + download_threads: 4 # 下载线程数 # ===== 文件类型 ===== photo_size: original # 照片尺寸:original/medium/thumb/adjusted/alternative diff --git a/icloud.ps1 b/icloud.ps1 index f3da4fb..2a7354a 100644 --- a/icloud.ps1 +++ b/icloud.ps1 @@ -47,8 +47,9 @@ switch ($Command) { Write-Host "完成!" -ForegroundColor Green } "sync" { - Write-Host "立即触发同步..." -ForegroundColor Yellow - docker exec icloudpd sync-icloud.sh --DownloadOnce + Write-Host "立即触发同步 (重启容器)..." -ForegroundColor Yellow + docker restart icloudpd + Write-Host "同步已触发,使用 '.\icloud.ps1 logs' 查看进度" -ForegroundColor Green } default { Write-Host "未知命令: $Command" -ForegroundColor Red