NAS and Samba
Samba is for photos that leave the phone but stay in the house. Traffic is TCP 445, not HTTP, so none of the Host-header and presign machinery from object storage applies.
What to put in the profile
provider:sambaendpoint: host,192.168.1.10ornas.local, optionalsmb://bucket: the share name, not a friendly folder labelaccess_key/secret_key: user / passwordroot: prefix inside the share, optionalextra.domain,extra.port(default 445),extra.guest=truefor empty password
The engine does not connect at construction time. The first list or write opens the session. A bad password shows up when you start a backup, not when you tap save.
English-language tests used a Synology DS220+ and also a vanilla Samba 4.17 share on Debian. Guest mode worked only when the server allowed it; DSM with “local users” rejected empty passwords even with guest=true.
Unlike USB
There is no probe() capacity figure, so ETA cannot use “bytes free”. Concurrency caps at 8. Writes use a same-directory temp plus rename; SMB rename cannot overwrite, so a replace deletes the target first.
iOS must declare Local Network usage or access to *.local fails quietly on device. That is an Info.plist problem in the host app, not something the engine can fix.
Lab hook
January–March 2026, DS220+ DSM 7.2.2, share photos, iPhone 14 Pro then Xiaomi 14. 15,767 items, 69.9 GB, 1 GbE. Four failures, all idle session drops, all retried. The family NAS case page has the split per phone.