tushushare
V2EX  ›  Android

写了个开源工具:手机照片视频无损搬到电脑,局域网直传, PC 不装任何客户端

  •  
  •   tushushare · 5 days ago · 6296 views

    写了个工具解决自己的痛点,开源出来给大家用,求轻喷、求反馈。

    GitHub: https://github.com/malatomato1989/photosmove

    官网:https://www.photosmove.com

    Google Play:搜索 PhotosMove ,或 https://play.google.com/store/apps/details?id=com.photosmove.app

    起因

    老婆手机里攒了 1600+ 张照片、20 多个 G 的视频,想搬进电脑做本地备份,把主流方案试了一圈,都有点膈应:

    • 微信/QQ 传文件助手:图片走压缩管道,视频超过 1GB 直接传不了,传完时间戳和 EXIF 还可能被动过
    • 网盘:上传即转码的风险 + 不开会员限速,几十 G 要传到天荒地老,而且照片这东西我不想让它过第三方服务器
    • 数据线 MTP:能保证原样,但大批量传的时候慢、偶发中断,中途断了还得从头排查哪些传了哪些没传
    • LocalSend / Syncthing:好用,但电脑端要装客户端,用起来有点不顺手

    我的需求其实很简单朴素:手机里的照片视频原封不动落到电脑上,电脑端一个浏览器就能搞定。找不到完全对口的,就自己写了一个。

    用法

    1. 手机装 PhotosMove ( Google Play ),点一下启动服务
    2. 电脑浏览器打开手机上显示的地址,输 6 位 PIN 码
    3. 勾选相册 → 浏览器开始下载一个流式 ZIP ,完事

    PC 端零安装:不需要驱动、不需要客户端、不需要账号,有个浏览器就行。

    几个实现上的点,和 V 友们聊聊

    • 手机端起 HTTP 服务:Go 写的服务跑在 Android 前台服务里,同一局域网下浏览器直连。不连云、不采集任何遥测、传输数据不出局域网。
    • 流式 ZIP + ZIP64:20G+ 的照片集不打包进内存,边打包边下载,ZIP64 保证单个文件超 4GB 不炸。
    • 字节级无损:JPG / HEIC / RAW / DNG / MP4 / Live Photo 原始字节直出,不重压缩不转码,EXIF 、GPS 、时间戳全保留。
    • 完整性校验:下载完可以在浏览器本地跑 SHA-256 逐文件比对,校验逻辑也是纯前端,文件同样不上传。
    • 保留目录结构:落盘后还是 DCIM/Pictures 的原始布局,方便接续你的归档习惯。

    边界说明

    • 仅 Android → 电脑方向,不做反向
    • 需要手机和电脑在同一局域网(这是特性不是缺陷:数据不出门)

    GPL-3.0 开源,代码完全可审计,欢迎 code review 和提 issue 。如果你也受够了“传个照片还要过一遍别人的服务器”,欢迎试试,使用中任何问题直接在这里回复或提 issue 都行。

    Supplement 1  ·  5 days ago
    大家如果用起来有哪些问题和想法也可以提给我,感谢大家!
    73 replies  •  2026-11-11 14:45:34 +08:00
    v2wp
    v2wp
    5 days ago
    1
    这个是好东西,而且也实用,就是你这本来就是开源了免费的,默认语言怎么不能是中文呢。
    A1188
    A1188
    5 days ago via Android❤️1
    2
    虽然但是。。。QQ 发文件直接发我的电脑,是直接发源文件的啊,在局域网内还是直接走局域网(
    bennylam2017
    bennylam2017
    5 days ago via Android
    3
    不做反向是否备份还原
    到另一部手机会失真或排序乱了?
    遇到同樣問題,請問有
    没有特别工具推荐
    由电脑还原到手机.
    piku
    piku
    5 days ago via Android
    4
    有没有可能 localsend 有 http 模式可以不安装接收客户端
    tushushare
    tushushare
    OP
    5 days ago
    5
    @v2wp 默认是按用户的手机的语言来自动适应的,想着开源嘛,英语范围更广一些
    tushushare
    tushushare
    OP
    5 days ago
    6
    @A1188 现在好久没用 QQ 了,还怎么想起来
    tushushare
    tushushare
    OP
    5 days ago
    7
    @bennylam2017 没有做反向还原,因为我的初衷就是从手机传到电脑,后面看大家的需要再增加功能
    tushushare
    tushushare
    OP
    5 days ago
    8
    @piku 好像他是文件一个一个传的,文件多的话 IO 占用高,有点慢,流式 zip 传输 IO 稳定且快
    qingrain
    qingrain
    5 days ago❤️2
    9
    https://www.xiaolifaa.com/
    这个我用了很久,是类似的,你可以看看。它也是把手机上的文件在电脑上用浏览器来管理,也是局域网。它的优点就是可以在浏览器里面去删除相册和图片、删除文件。也可以批量下载,它是直接把这个相册里面的打成一个压缩包来。
    它还可以直接把电脑上的文件拖到浏览器的这一个网页下,就直接传到手机上了。
    zuokanyunqishi
    zuokanyunqishi
    5 days ago
    10
    没有蓝牙不爽啊
    honhon
    honhon
    5 days ago
    11
    我用 immich
    z775781
    z775781
    5 days ago❤️1
    12
    小米手机文件管理器有个 FTP 模式,可以内网 FTP 直连
    sugarat
    sugarat
    5 days ago❤️1
    13
    Star 了 感觉不错
    cnbatch
    cnbatch
    5 days ago
    14
    如果电脑是 Windows 那就没必要搞得那么麻烦,直接开启 SMB (文件共享),然后手机打开功能强一点的文件管理器( CX 、FX 之类的)即可进入电脑的文件夹,接下来随便复制文件

    任意文件都可以复制,不止限于图片、视频
    psllll
    psllll
    5 days ago via Android
    15
    安卓直接用 termux rclone smb 传
    tushushare
    tushushare
    OP
    5 days ago
    16
    @qingrain 看着不错
    tushushare
    tushushare
    OP
    5 days ago
    17
    @zuokanyunqishi 蓝牙倒是还没想到,后面看看要不要加上
    tushushare
    tushushare
    OP
    5 days ago
    18
    @honhon 这个也行的
    tushushare
    tushushare
    OP
    5 days ago
    19
    @z775781 确实是个好功能,但是其他很多手机没有这个功能
    tushushare
    tushushare
    OP
    5 days ago
    20
    @psllll 小白用户稍微有点复杂
    tushushare
    tushushare
    OP
    5 days ago
    21
    @cnbatch 小白用户配置起来就是比较麻烦的
    charley008
    charley008
    5 days ago
    22
    额,好像手机插数据线连上电脑,就能全部复制一份了啊。
    这又不是常用功能,没必要再专门写个软件吧?
    charley008
    charley008
    5 days ago
    23
    alading11
    alading11
    5 days ago
    24
    我是用的 syncthing ,隔段时间开一次同步一下
    JackalZhao
    JackalZhao
    5 days ago
    25
    这种应用最大的一个痛点就是,手机上显示的地址在电脑上一个一个的输入,非常费事儿。

    因为手机连入 Wi-Fi ,有时候 IP 地址会变,在电脑上添加书签不管用。
    JackalZhao
    JackalZhao
    5 days ago
    26
    我的做法是,让 AI 写了一个脚本,对要备份的文件夹,通过 adb shell 执行命令,拉出列表。对比本地文件,对于增量文件,用 ADB pull 进行拉取到本地。

    要用的时候,插上数据线,双击脚本就好了。能跑到 USB 传输的满速度。比数据线 MTP 要可靠的多。

    另外还做了一个用 ADP 进行手机文件管理的电脑应用: https://github.com/HaujetZhao/ADB-Browser

    ![ADB Browser]( https://github.com/HaujetZhao/ADB-Browser/raw/main/assets/demo.png)
    JackalZhao
    JackalZhao
    5 days ago
    28
    奇怪,怎么发不了图片呢
    tushushare
    tushushare
    OP
    5 days ago
    29
    @sugarat 感谢,希望对大家有用
    tushushare
    tushushare
    OP
    5 days ago
    30
    @charley008 这个我上次用了,我要把所有照片全部拷出来,慢的很,几个小时都弄不完
    tushushare
    tushushare
    OP
    5 days ago
    31
    @JackalZhao 确实,这个问题可以解决,不过就需要使用一点点的云端的交互,就不符合我没有任何公网交互的绝对隐私的效果了
    tushushare
    tushushare
    OP
    5 days ago
    32
    @JackalZhao 嗯,确实现在的 AI 已经很强大了
    nuk
    nuk
    5 days ago
    33
    我一般是插电脑,然后 freefilesync 同步。
    输 IP 可以使用 mdns 注册吧,比较方便一点,直接把 pin 码的一部分作为 domain 解析,这样输一个 pin 码就能连接了。
    cnbatch
    cnbatch
    5 days ago
    34
    “文件共享”(SMB)不怎么需要配置呀,Windows 系统找个空白文件夹点击几下就能开启

    手机那里更简单了
    就以“CX 文件管理器”为例,初次连接成功后,这个路径就会自动记住,以单独的图标(快捷方式)出现在管理器首屏,以后每次进入直接点图标就行,不需要每次都重新配置一遍

    换句话说,只需要“不那么小白”的人先配置一遍、打开一遍,接下来小白直接点开就能用,就连网址地址 PIN 码都不需要手动重复输入
    tushushare
    tushushare
    OP
    5 days ago
    35
    @cnbatch 嗯嗯,你说的是对的,不过我这个项目主要就是给纯小白用的
    tushushare
    tushushare
    OP
    5 days ago
    36
    @nuk freefilesync 同步也确实好用的
    dhampirwwh
    dhampirwwh
    4 days ago
    37
    好东西,提 2 点建议:
    1.要是能识别无用的删除就好了
    2.要是能同步但手机删了,电脑不会删掉,就好了
    cnbatch
    cnbatch
    4 days ago
    38
    说起来,纯小白使用 Windows 文件共享也不麻烦呀,教程一堆,AI 直接出答案

    甚至早就有人发了视频教程

    https://www.bilibili.com/video/BV1fC4y1G7eA/
    tushushare
    tushushare
    OP
    4 days ago
    39
    @dhampirwwh 嗯嗯,谢谢确实是个好建议,不过是否无用,这个标准不太好拿捏,删除错了就很麻烦
    sudo123
    sudo123
    4 days ago
    40
    我都是把手机所有图片移动到一个文件夹内,然后用 localsend 传到电脑
    yjd
    yjd
    4 days ago
    41
    我用的 mixplorer 局域网共享拷贝即可。之前还试过另一款速度最快的忘记叫啥了。也是类似资源管理器。
    HarlanZhang
    HarlanZhang
    4 days ago
    42
    8080 端口太常见了,做个降级方案吧。我是 OPPO 手机,8080 默认给多屏协同用了。
    git00ll
    git00ll
    4 days ago
    43
    照片当然是 immich 啦 , 不用手动管理了
    yh7gdiaYW
    yh7gdiaYW
    4 days ago
    44
    没必要死磕 PC 无客户端啊,你打开浏览器不还是开了个应用还要保存书签,还要输 PIN 鉴权,有客户端更方便
    apologize327
    apologize327
    4 days ago
    45
    试了下挺好,提 2 个优化建议:
    1.可以修改端口
    2.可以选择下载哪些相册,现在只能全部下载
    apologize327
    apologize327
    4 days ago
    46
    @apologize327 还有个缺陷是服务没有终止按钮,只能强制关闭应用
    apologize327
    apologize327
    4 days ago
    47
    @apologize327 #45 发现个 bug ,开启服务后,点击通知跳转到 app ,此时界面顶部会再次弹出一个通知,点进去会进入同一个界面,重复点击,然后右滑退出时,会出现多次(同一个)界面才能退出,正常应该是右滑一次即可。设备是 Android 14 原生系统
    Yjhenan
    Yjhenan
    4 days ago
    48
    小米的文件管理器自带的
    adrianzhang
    adrianzhang
    4 days ago
    49
    我也在找相关解决办法,需要不碰电脑,可以在电脑上装 mcp 发指令给 agent 实现周期性备份并删除手机源文件腾空间。
    tushushare
    tushushare
    OP
    4 days ago
    50
    @sudo123 嗯,这样也是可以的
    tushushare
    tushushare
    OP
    4 days ago
    51
    @HarlanZhang 行,这个优化点记下了
    tushushare
    tushushare
    OP
    4 days ago
    52
    @git00ll 管理照片,确实 immich 很方便的
    tushushare
    tushushare
    OP
    4 days ago
    53
    @apologize327 好的,感谢你的建议,我记下了
    tushushare
    tushushare
    OP
    4 days ago
    54
    @apologize327 目前没有加终止,不过可以曲线救国,浏览器停止下载,就中止了
    tushushare
    tushushare
    OP
    4 days ago
    55
    @apologize327 好的好的,回头我修复 一下
    tushushare
    tushushare
    OP
    4 days ago
    56
    @Yjhenan 嗯,小米在这些方面做得还是不错的
    HtPM
    HtPM
    4 days ago
    57
    作者执行力很强,赞!
    但是家里 Nas 服务器已经有 immich + cloudflare tunnel 了,app 端会自动同步照片,其它端浏览器直接访问非常方便。
    zt4027050
    zt4027050
    4 days ago
    58
    @JackalZhao 用微信输入法就可以跨应用复制了
    zt4027050
    zt4027050
    4 days ago
    59
    @JackalZhao 是跨设备复制,打错了
    tushushare
    tushushare
    OP
    4 days ago
    60
    @zt4027050 强啊,这种方案都能发现
    codingBug
    codingBug
    4 days ago
    61
    USB 直连不行吗?????
    tushushare
    tushushare
    OP
    4 days ago
    62
    @codingBug 还没有适配 usb 直连
    MrChip
    MrChip
    4 days ago
    63
    从这个局域网传文件+pin 码的模式,有没有了解过[FastSend]( https://github.com/ShouChenICU/FastSend)?
    chaoFanExcellent
    64
    建议电脑端显示手机的文件目录,然后可以有选择性的勾选,然后下载,不然,一下子全下载太麻烦了,还是不够实用
    liyafe1997
    liyafe1997
    3 days ago
    65
    你这个只能传相册
    我直接用 HTTP Server 这个 App ,原理和你的 App 一样,在手机上开个 HTTP Server ,浏览器进入管理文件,区别是各种文件都能管理,上传下载,也能多选一键流式 zip 下载。
    wangybsyuct
    wangybsyuct
    3 days ago
    66
    CX 文件管理器和 Mix 资源管理器,等等,还有手机带的文件管理器几乎都支持 ftp 默认是 3721 端口,用 ftp 传呗,简单高效。电脑里支持 ftp 的就更多了,ie 就支持,开源的 ftp 工具就更多了,比如大名鼎鼎的 filezilla 。
    tushushare
    tushushare
    OP
    3 days ago
    67
    @liyafe1997 是的,我这个目前只能传相册,一开始也想和 http server 一样,但是我自己用下来,感觉功能太多了也不太好,就删除了其它的功能,只保留了核心的懒人功能
    tushushare
    tushushare
    OP
    3 days ago
    68
    @MrChip 没有用过,我试试,感觉不错哟
    wednesdayco
    wednesdayco
    3 days ago
    69
    @bennylam2017 你这咋做到一会儿繁体一会儿简体的
    zt4027050
    zt4027050
    3 days ago
    70
    @tushushare 主要是我之前用的 iPhone+mac ,跨设备复制是刚需,换成了 vivo 手机发现跨设备复制很麻烦,折腾了好久才发现新出的微信输入法可以跨,真的很好用
    zryadj
    zryadj
    2 days ago
    71
    @alading11 最佳
    archxm
    archxm
    2 days ago
    72
    @A1188 你确定吗?有源码吗?你就这么信任它,不分析你照片?
    archxm
    archxm
    2 days ago
    73
    @charley008 #22 数据线,莫名其妙容易断。安卓其实还好点,
    我以前苹果 8 ,断的特别多,拷贝照片,老难了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1996 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 118ms · UTC 15:28 · PVG 23:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.