GoForum🌐 V2EX

全量/增量/定时 下载小米云服务中的 相册/录音 到本地

coolfan · 2025-12-29 22:55 · 0 次点赞 · 0 条回复

这是 https://www.v2ex.com/t/1092480 的续集。

这个项目大概从今年年中开始从头构建,完全抛弃了之前的 Python 版本,改用 Solon Kotlin Vue 进行了标准的前后端分离重构。

相较于旧版本,新版本的主要改进如下:

  • 核心功能: 支持下载指定相册中的所有资产,并自动跳过已下载的内容。
  • 支持录音: 现在可以下载录音文件了。
  • 全自动化: 内置定时任务(无需借助外部 Cron ),支持全自动的增量下载。
  • 整理归类: 下载后会按照相册进行分类。
  • 元数据修复: 支持向照片和视频填充/修复 EXIF 时间信息,并重写文件系统的修改时间。
  • 部署方式: 除了原有的 Docker 部署外,现在还提供二进制文件直接运行。除了 Windows on arm 暂不支持外,其余主流平台的架构均已支持。

截图


额外分享一些技术细节:

solon 是一款完全对标 SpringBoot 的国产 web 开发框架。native-image 技术允许你将 Java 服务编译到特定平台的二进制代码,从而在无 JRE 环境的情况下启动,并带来远超 jvm 的预热速度。本文主要基于 XiaomiAlbumSync 项目,简述在二进制编译下使用 Solon 遇到的一系列问题和对应的解决方案。技术栈包含:Solon, Kotlin, Jimmer, Flyway, SaToken, Gradle, Maven.


flyway 天生与 native-image 不对付,在 solon 下也是如此。gradle 的大手近些年越伸越远,但在国内,还是 maven 的天下。本文主要是上一篇《轻装上阵-暂别 JVM:小记 Solon 和它的朋友们在 native-image 下的爱恨情仇》的续集,继续解决 flyway 如何在 naitve-image 环境下与 solon 打配合。以及尝试让 gradle 的大手再往 solon 伸一些。

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: coolfan
发布: 2025-12-29
点赞: 0
回复: 0