手机相册备份到 U 盘(iOS 选目录 / Android OTG)
USB 外接盘在 Azalea 里是一等备份目标,不是隐藏开关。存储引擎 provider 为 usb。桌面和 iOS 默认 path 模式,Android 必须 extra.mode=bridge,因为 OTG 只有 content://,POSIX 打不开。应用 ID net.duguying.photos。原图写在盘上,不经过 Azalea 服务器。盘上 <root>/.album/manifest.jsonl 是自描述索引。
iOS 没有可用的挂载卷枚举(非 macOS 上 FileManager.mountedVolumeURLs 为空),所以应用不会弹出「发现 SanDisk」。必须在系统「文件」里选一次目录,保存 security-scoped bookmark,之后 withAccess 包住引擎操作。Android 走 OpenDocumentTree 加 takePersistableUriPermission。
步骤
- 盘格式化 exFAT。不要 APFS(Android 写不了),不要只分一个仅 Mac 用的卷。实验室盘:SanDisk Extreme 1TB、SanDisk Ultra Dual Drive Luxe 1TB,出厂即 exFAT。
- 插入手机。iOS:系统「文件」里能看见它。Android:若树里没有盘,先把 USB 模式从充电切到传输。华为 Mate 60 HarmonyOS 4.2.0 第一次 OTG 就是充电模式。
- 打开 Azalea,权限给「所有照片」或 Android 完全访问。
- 「备份存储」→「新建配置」→ USB。iOS 选目录,确认 bookmark 保存成功。选目录起始位置若指向无权限路径,系统会忽略并回退,看起来像选择器打不开——先到「文件」App 进入那块盘,再回到 Azalea。Android 选树并勾持久化。
- 回到「备份状态」,打开自动备份。插电。iOS 等 Live Activity;Android 看通知栏前台服务。
- 待处理到 0。抽查 HEIC、Live Photo、4K。电脑上能看到
.album/manifest.jsonl在增长直至停止。文件名:*?会转义;逻辑名在应用里不变。Windows 上的怪文件名不要改回去。 - 拔盘前等任务暂停或完成。中途拔盘:iOS 下次打开刷新;Android 报
DeviceDetached,重插后续。Mate 60 在约 61%(5,100 / 8,359)拔过,12 个.tmp丢弃重写,0 丢失。
两次实验室
2026-03-14 iPhone 15,iOS 18.6.1,C to C 直连 Extreme 1TB。18,432 项、86.41 GB、257 分钟,平均约 5.7 MB/s。23 个冒号文件名转义后成功。锁屏约 2 小时处任务停,打开应用续。第一次选目录后锁屏,回前台要手动刷新才显示已挂载。
2026-02-22 Mate 60 + Dual Drive Luxe 1TB OTG。8,359 项、36.64 GB、188 分钟,平均 3.32 MB/s。视频瞬时 18 MB/s,小 JPEG 拉低平均。桥接模式 extra.mode=bridge。没 take 持久化的对照:杀进程后配置还在,树权限没了。
同一块盘可被第二台认领,见认领硬盘篇。律师流程用过 T7,iPhone 16 Pro 与 Pixel 8a 先后写。两块盘都叫 Backup 时用 volume UUID,不要靠文件夹名。
失败
- 选了 iCloud Drive 文件夹:不是外接盘。二次确认对话框存在就是因为这件事。probe 会怪。
- iOS 书签在作用域外再用:变成难读的权限错误。整段备份必须在
withAccess里。不要把路径字符串抄到别的 App 去写。 - Android 不 take 持久化:重启后空树。回到「新建配置」重选。
- 用
DocumentFile.findFile扫几万张会卡——引擎不这么做,优先拼 document id。你作为用户不要在备份进行中用系统文件管理器遍历同一棵树改名。 - 空间不足
OutOfSpace:暂停腾位置,不要当普通 IO 失败跳过。应用不显示漂亮的剩余百分比时,以系统「文件」里盘容量为准。 - 格式化成 NTFS 又指望 iPhone 写入:iOS 对 NTFS 支持差。回到 exFAT。
选目录时 iOS 会耍的小花样
插入盘之后,先打开系统「文件」,确认卷出现,再进 Azalea。反过来时,选择器起始位置可能落在「我的 iPhone」或 iCloud Drive,你以为选中了 U 盘,实际 bookmark 钉在无写入权限或云占位路径上。二次确认对话框就是拦这件事。选完回到「备份状态」,待处理应开始下降;数字不动就回去看配置里的路径预览,不像盘名就重选。
书签是安全范围对象,不是你抄得走的 /Volumes/xxx 字符串。重装应用后书签丢失,需要再选一次目录,盘上库还在,认领即可,不必重传 86 GB。清掉应用数据同理。换电脑线、换转接头,iOS 仍认卷,但锁屏后要刷新。Android 换线更可能丢树权限,见上节 takePersistable。
exFAT 非法字符不止冒号。* ? 以及末尾空格(Mate 60 案例里 Windows 拷来的 新建 文本文档.JPG)都会进转义。逻辑名在 Azalea 搜索框里仍是人话。家人用 Windows「重命名去掉乱码」等于拆索引。把这句写进盘的标签里比写进 FAQ 更有用。
USB 3.2 盘跑不满标称带宽是小文件特性,不是盘假。iPhone 15 平均 5.7 MB/s、Mate 60 平均 3.3 MB/s,都测过。追求速度先视频后照片,见 4K 那篇。本篇只要求:盘格式对、路径对、权限对、中断后续得上。群晖不是 U 盘;对象存储不是 U 盘。三种「新建配置」不要混着选完再问「为什么文件不在盘上」。
线、口、模式
C to C 原装线在 iPhone 15 上工作正常。便宜转接 OTG 在 Mate 60 上能用,平均速度更低。不要用只供电的线。iPad 当中转没有实验室记录,不要把手机相册先 AirDrop 到 iPad 再指望同一 bookmark。盘插入后系统可能弹「要信任此配件吗」,不信任则「文件」里没有卷,Azalea 选不到目录。
Android 文档树授权对话框上的「使用此文件夹」必须点。只浏览不点,persistable 不会发生。授权根目录还是子目录:实验室 iPhone 选 azalea/15-lab,华为选盘根。第二台必须选同一个节点,不能「差不多在这块盘上」。.album 在该节点下,认领才找得到 jsonl。
备份状态出现 DeviceDetached 时先看物理连接,不要改 provider 去试对象存储「代替」。USB 任务和 COS 任务是两份配置、两套索引进度。混用会让你以为 U 盘写完了,其实只是另一份桶的待处理碰巧为 0。
空间告急时仍建议 USB 直连,见 4K 优先那篇。本篇只保证:选对目录、权限钉住、中断可续、文件名转义后逻辑名可搜。18,432 项和 8,359 项两次实机已经覆盖直连与 OTG。
盘上有什么、不要做什么
manifest 进 jsonl,校验值不进 exFAT xattr(会 ENOTSUP)。没有 presign_put。电脑预览可以,导入请仍走手机相册。群晖 Samba 是另一 provider,不要把网络盘挂进「文件」然后当 USB 选。对象存储适合盘不在身边;USB 适合买断和出差。
FAQ
iPhone 为什么扫不到 U 盘? 系统不给枚举。必须在「文件」里选一次。这是 iOS 限制,不是 Azalea 漏做。
Android 为什么必须授权文档树? OTG 是 content://。bridge 模式把 SAF 接到引擎。path 模式留给桌面。
拔盘会不会损坏已完成的照片? 已完成对象在正式路径。未完成是临时名,重试重写。Mate 60 的 12 个临时文件是这种。
能和电脑 Time Machine 同一块盘吗? 不要混。单独划一个目录给 Azalea,目录内不要让别的备份软件删 .album。
第二台手机怎么接着用? 选同一个目录认领。收藏跨 iOS/Android 不过去。原文件在。重装应用后书签或文档树权限会丢,目录还在盘上,再选一次即可,不必重传整库。