tushushare
V2EX  ›  Android

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

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

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

    因为手机连入 Wi-Fi ,有时候 IP 地址会变,在电脑上添加书签不管用。
    JackalZhao
    JackalZhao
    1 day 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
    1 day ago
    28
    奇怪,怎么发不了图片呢
    tushushare
    tushushare
    OP
    1 day ago
    29
    @sugarat 感谢,希望对大家有用
    tushushare
    tushushare
    OP
    1 day ago
    30
    @charley008 这个我上次用了,我要把所有照片全部拷出来,慢的很,几个小时都弄不完
    tushushare
    tushushare
    OP
    1 day ago
    31
    @JackalZhao 确实,这个问题可以解决,不过就需要使用一点点的云端的交互,就不符合我没有任何公网交互的绝对隐私的效果了
    tushushare
    tushushare
    OP
    1 day ago
    32
    @JackalZhao 嗯,确实现在的 AI 已经很强大了
    nuk
    nuk
    1 day ago
    33
    我一般是插电脑,然后 freefilesync 同步。
    输 IP 可以使用 mdns 注册吧,比较方便一点,直接把 pin 码的一部分作为 domain 解析,这样输一个 pin 码就能连接了。
    cnbatch
    cnbatch
    1 day ago
    34
    “文件共享”(SMB)不怎么需要配置呀,Windows 系统找个空白文件夹点击几下就能开启

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

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

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

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