菜单

资产管理

相关源文件

此页面介绍了 Immich 的资产管理功能,包括照片和视频(统称为“资产”)在系统中如何上传、查看、组织和管理。有关人物识别和人脸检测的信息,请参阅人物和人脸识别。有关相册功能,请参阅相册和共享

资产数据模型

资产是 Immich 管理的主要内容,代表用户上传的照片和视频。每项资产都包含元数据,例如 EXIF 信息、位置数据和时间戳。

来源: web/src/lib/components/asset-viewer/detail-panel.svelte web/src/lib/utils/asset-utils.ts

资产上传流程

Immich 中的资产上传遵循系统化流程,以确保正确处理和重复数据删除。

上传过程包括

  1. 文件选择:用户可以通过文件对话框或拖放界面选择文件
  2. 重复数据删除:上传前通过 SHA-1 校验和识别重复资产
  3. 进度跟踪:在用户界面中显示实时上传进度
  4. 相册整合:可选择将上传的资产直接添加到相册

上传队列由uploadExecutionQueue管理,具有可配置的并发性。资产根据配置逐个或并行处理。

来源: web/src/lib/utils/file-uploader.ts86-219 web/src/lib/components/shared-components/upload-panel.svelte

资产查看系统

Immich 通过 AssetViewer 组件提供全面的资产查看系统。

照片查看器

PhotoViewer 组件处理图像资产的显示,具有以下功能:

  • 通过鼠标或触摸手势进行放大/缩小
  • 支持动态照片(显示实况照片的视频部分)
  • 将图像复制到剪贴板
  • 资产间平滑过渡
  • 360° 照片的全景视图
  • 人脸检测叠加层

来源: web/src/lib/components/asset-viewer/photo-viewer.svelte

视频查看器

VideoViewer 组件为视频资产提供播放功能,包括:

  • 标准视频控制
  • 循环播放选项
  • 全屏支持
  • 360° 视频的投影支持

详细信息面板

DetailPanel 显示全面的资产元数据

  • 日期和时间信息(带时区)
  • 文件详细信息(文件名、分辨率、文件大小)
  • 相机信息(品牌、型号、镜头、曝光设置)
  • 带地图视图的位置数据
  • 人物识别及年龄计算
  • 相册关联
  • 自定义标签(如果启用)

如果用户拥有资产,他们可以编辑某些元数据,例如日期/时间或位置信息。

来源: web/src/lib/components/asset-viewer/detail-panel.svelte

资产网格和时间线

资产网格提供按时间顺序组织的资产时间线视图。

时间线组织

资产在虚拟化时间线中按以下方式组织:

  1. 资产桶:包含多个日期组的较大时间段
  2. 日期组:同一天或同一时间段的资产组
  3. 日期标题:显示每个组的格式化日期信息
  4. 时间线滑动条:快速浏览按时间顺序排列的时间线

时间线利用虚拟化来提高性能,仅渲染视口中可见的资产。

来源: web/src/lib/components/photos-page/asset-grid.svelte web/src/lib/components/photos-page/asset-date-group.svelte

缩略图显示

资产网格中的缩略图提供丰富的视觉信息

  • 尺寸合适的缩略图
  • 收藏、已归档和堆叠资产的视觉指示器
  • 视频资产的视频时长
  • 动态照片指示器
  • 多选操作的选定用户界面

来源: web/src/lib/components/assets/thumbnail/thumbnail.svelte

资产选择和批量操作

Immich 提供强大的资产选择功能,用于对多个资产执行操作。

主要选择功能包括:

  • 单独选择:点击或轻触选择单个资产
  • 范围选择:Shift+点击选择资产范围
  • 日期组选择:选择日期组内的所有资产
  • 全选:选择当前视图中的所有资产
  • 键盘导航:使用方向键导航资产,使用空格键选择

选择资产后,会出现一个控制栏,显示所选资产可用的操作。

来源: web/src/lib/components/photos-page/asset-grid.svelte412-452 web/src/lib/components/photos-page/asset-select-control-bar.svelte

资产组织功能

堆叠

资产堆叠允许将相似的照片或连拍照片组合在一起

堆叠方式如下:

  1. 选择多个资产进行堆叠
  2. 创建一个堆叠,并将一个资产设为主资产
  3. 在时间线视图中,在主资产上显示堆叠指示器
  4. 允许从资产查看器中以网格视图查看所有堆叠资产
  5. 提供解除堆叠或仅保留主资产的选项

来源: web/src/lib/utils/asset-utils.ts382-468

归档和收藏

资产可以被归档,以将其从主时间线中移除,但仍保留在系统中

  • 归档:将资产移动到归档部分,在主时间线中隐藏
  • 取消归档:将资产返回主时间线
  • 收藏:将资产标记为收藏以便快速访问
  • 取消收藏:移除收藏状态

每个状态都会在缩略图上通过相应的图标进行视觉指示。

来源: web/src/lib/utils/asset-utils.ts503-551 web/src/lib/components/assets/thumbnail/thumbnail.svelte334-344

资产生命周期管理

回收站和删除

当启用回收站功能时,Immich 提供两阶段删除流程

  1. 移至回收站:将资产移动到回收站,在那里可以恢复它们
  2. 永久删除:从系统中永久删除资产

当回收站被禁用时,删除操作会立即永久生效。

资产替换

资产可以用新版本替换,同时保持相同的资产 ID 和关联关系

  1. 用户从资产查看器菜单中选择“替换为上传”
  2. 新文件被上传并替换现有资产
  3. 所有关联(相册、人物标签)均被保留

来源: web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte191-194

元数据修改

用户可以修改其拥有资产的某些元数据

  • 日期/时间:更改拍摄日期和时间
  • 描述:添加或编辑资产描述
  • 位置:修改位置数据
  • 标签:添加或删除自定义标签

更改会保存到数据库并反映在资产的元数据中。

来源: web/src/lib/components/asset-viewer/detail-panel.svelte147-156

资产可以通过共享链接共享,允许没有账户的用户访问特定资产

  • 单独共享:通过链接共享单个资产
  • 相册共享:将多个资产作为相册共享
  • 密码保护:共享链接的可选密码保护
  • 下载选项:控制是否允许下载
  • 上传权限:控制接收者是否可以上传到共享相册

下载选项

提供多种下载选项

  • 原始文件:下载原始资产文件
  • 多个资产:下载为 ZIP 压缩包
  • 实况照片:选择包含或排除动态组件

来源: web/src/lib/utils/asset-utils.ts145-226 web/src/lib/components/share-page/individual-shared-viewer.svelte

跨组件集成

资产管理系统与其他 Immich 组件集成

  • 相册:资产可以添加到相册进行组织
  • 人物识别:资产中识别出的人物会显示出来并可以进行管理
  • 搜索:可以通过各种搜索条件查找资产
  • 地图视图:带有位置标签的资产会显示在地图视图上

这种集成确保了在管理和查看资产时,应用程序的连贯体验。

来源: web/src/lib/components/album-page/album-viewer.svelte web/src/lib/components/asset-viewer/detail-panel.svelte187-285