The file cache has an awkward low-level API that ends up mixing cache logic with client logic. Currently, the client calls these methods
I'd like to investigate whether this could be simplified:
...perhaps, by moving code to manage downloads and maybe uploads into the cache. A simpler API might disentangle the cache from the client, simplifying the client in the process.
Something like the following half-baked idea could transparently download and cache a file or retrieve a local copy and return either resulting local path or maybe an object if additional information or abstraction is necessary.
see also: Reimplement file locking to protect .cacheMap files
TODO: consolidate handling of ifcollision