功能全指南:创建、整理、共享与嵌套目录上传)
Ente Photos 相册Albums功能全指南创建、整理、共享与嵌套目录上传【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente导读本文是 Ente Photos 相册Albums功能的完整操作指南覆盖从相册的创建、重命名、描述编辑、封面设置到地图视图、排序、置顶、空相册批量清理以及桌面端嵌套文件夹上传策略等全部核心操作。读完本文你将掌握在移动端Android/iOS与 Web/桌面端分别管理相册的完整路径并理解相册在 Ente 中的底层数据模型——相册本质上是服务端的加密集合Collection所有操作都会自动同步到你的全部设备。相册是什么与文件夹的关键区别在 Ente Photos 中相册是帮助你整理照片和视频的集合collection。它像电脑上的文件夹一样可以把相关照片归组——但两者有几个关键差异相册的工作方式相册是照片和视频的集合每一张照片可以同时属于多个相册当一张照片被加入多个相册时它只占用一次存储空间不会重复计费相册会在你的所有设备之间自动同步。与文件夹的关键区别不支持嵌套与文件夹不同相册不能包含其他相册所有相册都处于同一层级多重归属一张照片可以同时存在于多个相册而不消耗额外存储与设备独立你在 Ente 中创建的相册与你设备上的本地文件夹是相互独立的。源码中的相册模型Collection从源码结构看相册在移动端底层对应的是 Collection 模型。该模型记录了相册的id、拥有者owner、加密后的名称与密钥encryptedName、encryptedKey、类型CollectionType、参与者sharees、公开链接publicURLs以及最后更新时间updationTime等字段。值得注意的细节是相册名称在服务端是加密存储的encryptedNamenameDecryptionNonce只有拥有合法密钥的客户端才能解密显示这与 Ente 端到端加密的定位一致源码注释中说明公开上线前的旧账号可能只有明文名称因此客户端通过decryptedName字段回退到旧名称相册类型由枚举CollectionType { folder, favorites, uncategorized, album, unknown }定义见 collection.dart其中album即用户手动创建的普通相册。创建新相册创建相册是组织照片和视频的第一步移动端与 Web/桌面端的入口略有不同。移动端打开底部的Albums相册标签页点击Add new新建按钮输入相册名称点击Create创建。Web / 桌面端点击右上角的All Albums所有相册按钮下拉箭头点击New album新建相册按钮输入相册名称点击Create创建或直接按回车。Web 端的实现位于 AllAlbums.tsx创建动作通过createAlbum(albumName)隐藏区则为createHiddenAlbum(albumName)发起成功后会触发远程同步onRemotePull并弹出相册已创建的提示条。对话框中还内置了搜索框——当你输入的名称包含 New album 字样时创建按钮依然会展示方便边搜边建。除了手动创建你还可以通过以下方式产生相册从设备上传照片时自动创建手动把照片加入新相册在桌面端通过 watch folders监视文件夹 功能自动创建。重命名相册给相册一个有意义的名称能让你的资料库更便于检索。移动端打开相册点击右上角的溢出菜单三个点点击Rename album重命名相册输入新名称点击Rename重命名。Web / 桌面端打开相册点击右上角的溢出菜单三个点点击Edit details编辑详情输入新名称点击Save保存。从源码看Collection模型通过setName()同步维护旧字段name与新字段decryptedName以保证旧账号迁移期间的兼容性见 collection.dart。添加或编辑相册描述你可以为相册添加一段描述文字为照片提供上下文。这段描述会显示在相册页面和共享链接中。移动端与 Web/桌面端操作一致打开相册打开溢出菜单三个点选择Edit details编辑详情输入或更新描述选择Save保存。描述的实现细节描述存储在相册的公开元数据Public Magic Metadata中密钥为caption描述最大长度为 200 个字符maxAlbumDescriptionLength 200见 collection_magic.dart移动端编辑弹窗对输入框设置了maxLength: maxAlbumDescriptionLength进行强制限制见 edit_album_details_sheet.dart显示时会对描述做trim()处理空白描述不会展示displayDescription字段见 collection.dart。设置相册封面你可以从相册中任选一张照片作为封面用于在相册列表中展示。移动端打开要修改的相册点击右上角的溢出菜单三个点选择Edit details编辑详情点击照片右下角的绿色铅笔图标在弹出的面板中浏览照片点击想要设为封面的图片点击Use selected photo使用所选照片。Web / 桌面端点击要修改的相册点击右上角的溢出菜单三个点点击Edit details编辑详情点击照片右下角的绿色铅笔图标选择要作为封面的图片点击Confirm确认。封面的实现细节封面照片的 ID 保存在公开元数据的coverID字段中CollectionPubMagicMetadata.coverID。由于它属于公开魔法元数据封面设置可以被分享者或通过公开链接看到相册是否已有封面通过hasCover判断pubMagicMetadata.coverID 0见 collection.dart。在地图上查看相册照片你可以按地理位置浏览相册中的回忆打开相册点击右上角的溢出菜单三个点选择Map地图相册中的所有照片都会显示在地图视图中。地图视图的相关功能可进一步参考 Map and location 文档。排序相册按时间顺序整理相册中的照片让最新或最旧的回忆优先展示。移动端打开相册点击右上角的溢出菜单三个点选择Sort by排序方式选择Newest first最新优先或Oldest first最旧优先。Web / 桌面端打开相册点击右上角的溢出菜单三个点点击Sort by排序方式选择Newest first最新优先或Oldest first最旧优先。Web 端还支持对相册列表本身而非单个相册内的照片进行排序排序选项定义在 collection-summary.ts排序方式含义name-asc/name-desc按名称升序 / 降序creation-time-asc/creation-time-desc按创建时间升序 / 降序利用相册 ID 随创建时间递增的特性updation-time-asc/updation-time-desc按最后更新时间升序 / 降序置顶相册把最常用的相册固定在列表顶部便于快速访问。移动端打开相册点击右上角的溢出菜单三个点点击Pin album置顶相册或Unpin album取消置顶。置顶的实现细节置顶状态存储在魔法元数据Magic Metadata的order字段中order值越大相册在显示时优先级越高源码注释Higher values give a collection higher display priority见 collection_magic.dart。相册是否置顶通过isPinned判断magicMetadata.order ! 0见 collection.dart。在 Web 端的排序优先级体系中置顶相册pinned的优先级为 7仅次于系统相册system9和收藏夹favorites8高于普通相册0见 collection-summary.ts。置顶的相册卡片在 AllAlbums.tsx 中会显示图钉PushPin图标。在 Web 和桌面端查找相册打开All Albums所有相册可以搜索相册名称或通过过滤器筛选列表。可用的过滤器包括Links链接通过快速链接创建的相册Shared已共享你分享给他人的相册Received收到的他人分享给你的相册Empty空相册你拥有、未共享、未归档且不含任何照片或视频的相册。过滤器的源码实现Web 端过滤器逻辑在 AllAlbums.tsx 中实现对应关系如下过滤器判断条件shared不包含sharedIncoming与quickLink且包含sharedOutgoing或sharedViaLinkreceived包含sharedIncoming属性links包含quickLink属性empty-albums满足isBulkDeletableEmptyAlbum条件见下文此外只有当某个过滤器下确实存在相册时该过滤器按钮才会显示搜索框会对相册名称做不区分大小写的匹配name.toLowerCase().includes(searchLower)。空相册Empty Albums空相册指不包含任何照片或视频的相册。它可能以两种方式产生导入过程中只要 Ente 检测到某个文件属于某个相册就会自动创建该相册——即使这个文件是不受支持的格式例如文本文件。如果其中没有有效的照片或视频文件就可能产生空相册。手动创建当你创建了相册但没有向其中添加任何照片时该相册会保持为空。批量删除空相册如果相册列表被大量空相册占满你可以一次性批量删除。移动端打开Albums相册标签页如果你有超过 2 个空相册会看到Delete empty albums删除空相册按钮点击该按钮确认删除。该功能会在初始同步完成且空相册超过 2 个时出现执行后会删除资料库中全部符合条件的空相册。Web / 桌面端打开All Albums所有相册选择Empty空相册过滤器确保相册搜索框为空点击对话框底部的Delete empty albums删除空相册确认删除。Empty空相册过滤器只在你有至少3 个符合条件的空相册时出现。只会删除你拥有、且未共享、未归档的空相册。空相册删除的判定条件与执行细节以 Web 端为例isBulkDeletableEmptyAlbum要求同时满足见 collection-summary.ts文件数为 0fileCount 0类型为album或folder不是系统相册system未被共享shared未被归档archived。真正执行删除前Web 端还会在本地二次核对先重新拉取远端数据再逐一确认该相册没有文件、拥有者是当前用户、无 sharees、无公开链接、未归档且非默认隐藏见 AllAlbums.tsx然后以deleteCollection(id, { keepFiles: true })删除——keepFiles: true表示服务端只有在相册确实为空时才允许删除否则拒绝避免误删仍含文件的相册。移动端的实现位于 delete_empty_albums.dart它遍历CollectionsService中的相册列表剔除canDelete为 false 的类型favorites与uncategorized不可删除见 collection.dart以及仍含文件的相册然后逐个调用trashEmptyCollection。底层逻辑在 collections_service.dart 中同样使用keepFiles: true调用deleteCollection并通过isBulkDelete标志跳过频繁的相册刷新、直接更新本地缓存删除完成后触发CollectionUpdatedEvent并重新同步服务。从桌面端上传嵌套文件夹使用桌面端从电脑上传照片和视频时——无论是拖拽文件夹或 zip 文件还是通过 watch folders监视文件夹 功能——你可以选择如何处理嵌套的文件夹结构。单个文件或扁平文件夹如果上传的是单个文件或没有嵌套子文件夹的文件夹桌面端会询问你上传到已有的 Ente 相册或新建一个相册应用会根据文件夹名称智能推荐新相册的名称。嵌套文件夹结构如果文件夹包含嵌套子文件夹且你选择新建相册会看到两个选项单一相册Single album创建一个以父文件夹命名的 Ente 相册所有嵌套子文件夹中的文件全部进入这一个相册示例文件夹Photos包含New Year/和Summer/→ 创建一个名为 Photos 的相册包含所有文件。独立相册Separate albums为每个嵌套子文件夹分别创建一个独立的 Ente 相册只有至少包含一个文件的文件夹才会成为相册空文件夹被忽略只使用叶子文件夹名例如A/B/C/Photos/x.jpg和1/2/3/Photos/y.jpg都会进入名为 Photos 的相册示例文件夹Photos包含New Year/和Summer/→ 创建两个相册New Year 和 Summer。[!NOTE]Ente 相册不支持嵌套。在独立相册模式下每个嵌套文件夹都会成为一个顶层相册——它们不会以层级结构组织。关于自动桌面同步可进一步参考 watch folders 文档。值得注意的是watch folders 的嵌套处理选项与拖拽上传时的选项一致该文档明确引用了本页的嵌套结构说明并且它目前是单向同步——把导出数据放到被监视的同一文件夹会导致未定义行为重复文件、导出停滞等。相关 FAQ以下是官方文档中与本主题相关的常见问题索引见 albums.mdEnte 相册可以嵌套吗上传嵌套文件夹结构时会发生什么我可以同步包含多个子文件夹的文件夹吗为什么新的 iOS 相册中的照片没有全部出现在对应的 Ente 相册中Ente 如何处理属于多个 iOS 相册的照片小结Ente Photos 的相册功能建立在服务端加密的 Collection 模型之上具备多归属不重复计费、全设备自动同步、不支持嵌套三大核心特性。通过本文你已经掌握了相册的全生命周期管理创建、重命名、描述上限 200 字符、封面coverID、地图视图、相册内排序、置顶order优先级、All Albums 过滤与搜索以及空相册的批量清理Web 端需 ≥3 个、移动端需 2 个才会显示入口。对于桌面端用户嵌套文件夹上传的单一相册 / 独立相册两种模式可以让你在保留文件夹语义扁平化为顶层相册与合并归组之间自由选择。【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考