Help us shape the future of Go! Take the 2026 Go Developer Survey

img_syncer

module
v1.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2026 License: GPL-3.0

README



Pho - 一个用于查看和上传照片的无服务端应用

中文 | English

安装

开源版(仅 Android APK):

  • 下载 APK — 仅含 SMB / WebDAV / NFS,无 Pro 功能

Pro 版(含全部功能,需付费):

  • App Store — iOS 版,支持 AES 加密、并行上传、筛选器、百度网盘等
  • Google Play — Android 版,支持 AES 加密、并行上传、筛选器、百度网盘等

开源仓库仅提供 APK 下载。iOS 用户请前往 App Store、Android 用户请前往 Google Play 下载 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 和 Google Play 提供: App Store / Google Play

Screenshots

本地相册 云端相册 同步页面 照片查看

roadmap

  • 支持放大/缩小图片
  • 支持上传/浏览视频
  • 支持NFS
  • 支持IOS端
  • 支持desktop端
  • 支持中文

构建

环境要求

构建步骤

# 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

Star History Chart

Directories

Path Synopsis
assets
api
clib command
run
test
testutil
Package testutil provides shared test helper functions for integration tests.
Package testutil provides shared test helper functions for integration tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL