- 需求:在端到端加密、分块存储、无中转服务的前提下提供“公开分享”。
本次修复涉及多个我这边用的时候发现的问题:
在桌面端文件管理界面中,我这边用的时候发现上传和新建功能的菜单层级较深,操作不够直观。
项目原有的缩略图生成策略为**按需生成**: - 上传文件时,只上传原始文件 - 浏览文件列表时,前端请求缩略图 API - 后端检查缩略图是否存在,不存在则下载源文件、生成缩略图、保存后返回
**涉及模块**: 全局命名、Android 原生、Windows 托盘、Flutter 生命周期
**涉及功能**: 图片预览缓存、视频播放器边距、聊天输入框、长按加速、锁定屏幕、App 重命名
**状态**: 已完成
files_page.dart 作为应用的核心文件列表页面,代码量达到 3035 行,包含了大量的 UI 组件和业务逻辑。
实现 E2E 便携式加密文件的导入导出功能时,我们经历了一个"越做越复杂"的过程,最终意识到走入了过度设计的误区。
原有设计中,S3 配置通过 Settings 页面的弹窗设置,存储在 SharedPreferences 中,只支持单个 S3 配置。使用上需要在不同 S3 存储之间切换时非常不便。本次重构实现:
E2EEPAN 是一个端到端加密的网盘应用,所有文件在上传前加密,存储在 S3 上的都是密文。
在 Android 设备上批量上传视频文件时,部分文件上传失败。
在解决批量上传产生游离文件的问题后(通过互斥锁保证原子性),发现新的性能问题:
我这边用的时候发现批量上传文件时会产生大量游离文件(orphan files)。
游离文件夹中可能存在一种特殊情况:文件以 `.enc` 结尾,但无法解密。
游离文件(orphan files)是指存在于 S3 但不在元数据库中的文件。
系统中可能存在两类"游离文件"——S3 中存在但元数据库中没有记录的文件:
之前缩略图生成逻辑在前端实现: 1.
在缩略图文件夹中点击缩略图预览时,发现显示的是源文件而非缩略图本身,查看详情时信息也不准确。
日期:2025-12-19 主题:围绕“缩略图”系统文件夹,统一后端能力和前端行为,做到:
1. **错误信息不友好**:
- 目标:未来通过 gomobile / FFI 把 Go 核心嵌入到移动端/桌面应用中,减少“先启动核心进程,再连接 HTTP 服务”的操作成本。
- 项目已经是端到端加密: - 客户端在本地用 AES-256-GCM 加密后,才上传到 S3。
- 早期版本里存在一个 `UnlockPage`,用于输入“解锁密码/密钥”。
- 场景:在客户端中新建一个文本文件(例如 `note.txt`)时,文件列表中的图标是“文本文件图标”;但在文本编辑器里修改内容并保存后,图标会变成“普通文件图标”。
这次重构的起点是一个看起来很小、但暴露出架构问题的 bug: