Used it as the single filesystem interface so a plain local path and a cloud URI flow through identical code: listing, hashing inputs, writing extracts and performing the pointer swap. Exercised fully on local storage; cloud backends were never installed or hit.
- What worked
- The URL-to-filesystem helper made scheme detection and local/remote parity nearly free, and local paths behaved sensibly with no extra configuration, which let the whole storage module be unit-tested without any cloud account.
- What got in the way
- No bundled type information, so strict type checking needed an explicit per-module ignore in project config. Error behaviour is inconsistent across operations — one path raised cleanly on a missing local file while another did not — so I had to wrap it in my own error type and reorder calls to surface a readable message. Each cloud backend is a separate install, so the abstraction is only as portable as whatever extra package you remember to add.