在管理个人照片库时,存储空间的灵活性至关重要。Immich,作为一款自托管的照片管理解决方案,允许用户将存储位置移动到不同的硬盘或网络存储设备上。本文将详细介绍如何在Immich中变更存储位置,并提供关键数据的表格说明。

准备工作-immich move storage location
- 了解Immich的存储结构:Immich使用UPLOAD_LOCATION来定义存储位置,默认情况下,文件存储在/usr/src/app/upload。
- 备份数据:在进行任何存储迁移前,确保你已备份所有数据,以防数据丢失。
步骤说明
1. 新建存储位置
首先,确定你要将数据移动到的新存储路径。例如,如果你想将数据移到一个名为/mnt/externaldrive/immich的目录:
bash
sudo mkdir -p /mnt/externaldrive/immich2. 停止Immich服务
为了安全地进行数据迁移,需要先停止所有相关容器:
bash
docker-compose down3. 迁移数据
将现有的数据文件移动到新位置。可以使用rsync来确保文件同步:
bash
rsync -av /path/to/current/UPLOAD_LOCATION/ /mnt/externaldrive/immich/4. 更新环境变量
编辑docker-compose.yml文件中的环境变量或.env文件,将UPLOAD_LOCATION设置为新的路径:
yaml
version: '3'
services:
immich-server:
environment:
- UPLOAD_LOCATION=/mnt/externaldrive/immich或者在.env文件中:
bash
UPLOAD_LOCATION=/mnt/externaldrive/immich5. 重新启动Immich
更新配置后,重启Immich服务以应用新设置:
bash
docker-compose up -d6. 验证
登录Immich的管理界面,确保所有照片和视频都完整无误地显示出来。

关键数据表格
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1. 新建存储位置 | mkdir -p | 创建新的物理或网络存储位置的目录。 |
| 2. 停止Immich服务 | docker-compose down | 确保在操作期间没有写入新数据,避免数据损坏。 |
| 3. 迁移数据 | rsync | 确保数据完整地从旧存储位置移到新位置。rsync提供了增量备份的可能性,减少数据传输量。 |
| 4. 更新环境变量 | 编辑配置文件 | 修改UPLOAD_LOCATION环境变量,告知Immich新的存储路径。可以直接在docker-compose.yml或.env文件中修改。 |
| 5. 重新启动Immich | docker-compose up -d | 启动所有服务,使新的存储路径生效。 |
| 6. 验证 | 登录管理界面 | 检查所有的媒体文件是否都能正常访问,以验证迁移的成功性。 |
注意事项
- 备份:在进行任何更改之前,确保有完整的备份。Immich的资产包括原始文件和生成的缩略图、编码视频等。
- 性能考虑:如果新存储位置是网络存储(如NAS),请考虑网络延迟对Immich性能的影响。
- 权限:确保新的存储位置对Immich的容器有正确的读写权限。
通过这些步骤,你可以成功地将Immich的存储位置转移到新的设备上,确保你的照片可以继续受到良好的管理和保护。

