pho
A serverless application for viewing and synchronizing photos to cloud storage
Pho - 一个用于查看和上传照片的无服务端应用
安装
开源版(仅 Android APK):
- 下载 APK — 仅含 SMB / WebDAV / NFS,无 Pro 功能
Pro 版(含全部功能,需付费):
- App Store — iOS 版,支持 AES 加密、并行上传、筛选器、百度网盘等
开源仓库仅提供 APK 下载。iOS 用户请前往 App Store 下载 Pro 版(支持免费试用基础功能后购买 Pro)。
介绍
该应用的目的是替代手机上的自带相册应用,并且能够将照片同步到网络储存.
功能简单,只是用于查看照片以及同步照片到网络储存.试图做到优秀的体验.
功能
- 本地照片查看
- 云端照片查看
- 增量同步照片到云端
- 后台定期同步
- 无数据库,无服务端
- 以时间组织云端存储的目录结构
支持的网络储存
- Samba
- Webdav
- NFS
- 阿里网盘
- oneDrive
- google drive
- google photo
与 Pro 版本差异
本仓库为 Pho 开源版,仅包含核心的照片查看与同步功能.以下功能仅在 Pro 版本中提供(未开源):
- AES 加密上传(支持 AES-128-CFB 与 AES-256-GCM,加密视频支持 Range 播放)
- 并行上传调优(多文件并发上传)
- 文件筛选器(按类型/日期等条件过滤同步)
- 目录结构配置(可选
YYYY/MM/DD或YYYYMMDD组织方式) - 主题色自定义
- 百度网盘支持
开源版仅支持 Samba / WebDAV / NFS 三种网络储存.
Pro 版在 App Store 提供: App Store
Screenshots
roadmap
- 支持放大/缩小图片
- 支持上传/浏览视频
- 支持NFS
- 支持IOS端
- 支持desktop端
- 支持中文
构建
环境要求
- Flutter: 3.41.4 (stable), Dart: 3.11.1
- Go: 1.25 (toolchain go1.25.4)
- JDK: 17
- Android SDK: compileSdk 36
- Android NDK: 用于构建嵌入式 Go 服务端 (gomobile bind)
- protoc + 插件: protoc-gen-go@v1.27.1, protoc-gen-go-grpc@v1.1.0, protoc_plugin@21.1.2 (Dart)
构建步骤
# 1. 生成 protobuf 代码 (Go + Dart stubs) make prebuild # 安装 protoc 插件 make protobuf # 2. 构建嵌入式 Go 服务端 make server-aar # Android: android/app/libs/server.aar (需 gomobile) make server-ios # iOS: ios/Frameworks/RUN.xcframework make server-linux # Linux: linux/lib/run.so make server-windows # Windows: windows/lib/run.dll # 3. 构建 Flutter 应用 make apk # Android APK make ipa # iOS IPA # 4. 运行测试 (需要 Docker 用于 SMB/WebDAV/NFS 测试容器) make test
注:
flutter run不会自动构建android/app/libs/server.aar,需先执行make server-aar,否则 Go 服务端无法启动.
Contribute
感谢各位的积极反馈
给本项目提需求的还不少,但是我一个人精力有限,如果你有兴趣,欢迎加入.
可以在issue中回复沟通,帮忙一起做一些功能,提出你的pull request.
文件储存逻辑
本着尽可能简单的逻辑来储存文件,以时间为目录结构,以文件名为文件名储存源文件.在根目录创建一个.thumbnail目录来储存生成的缩略图,缩略图的目录结构与源文件相同.
你可以随时以其他形式利用你备份上去的照片,而不用依赖此app.
目录结构示意图:
├── 2022
│ ├── 07
│ │ ├── 02
│ │ │ ├── 20220702_100940.JPG
│ │ │ ├── 20220702_111416.JPG
│ │ │ └── 20220702_111508.JPG
│ │ └── 03
│ │ ├── 20220703_101923.DNG
│ │ ├── 20220703_112336.DNG
│ │ └── 20220703_112338.DNG
├── 2023
│ └── 01
│ └── 03
│ ├── 20230103_112348.JPG
│ ├── 20230103_124634.JPG
│ └── 20230103_124918.DNG
└── .thumbnail
└── 2022
└── 07
├── 02
│ ├── 20220702_100940.JPG
│ ├── 20220702_111416.JPG
│ └── 20220702_111508.JPG
└── 03
├── 20220703_101923.DNG
├── 20220703_112336.DNG
└── 20220703_112338.DNG
Star History
more like this
habitonic
Habit Tracker helps you build positive habits and keeps track of your day-to-day habits and routines. Made with Clean a…



