We are developing a system whereby documents/files will be stored on a specialized Content Server and uploaded via a client.
However we want to be able to develop this so if we need to, we can swap the Content server out with a generic network folder. This is so we can test the other parts of the system in isolation and treat the file system as a sort of mock Content server. There is also a possibility with some installations we might actually use this strategy too.
We could store the file on the network renamed to a Guid, and then store that Guid in the client database for easy access.
However I have some questions:
How do we spread the files out so it is not just one folder with 1000s of Guids in one folder? Do I split into separate folders based on the first few digits of the filename/date etc.?
If the file is renamed to a Guid, is there a way I can easily store the filename and other meta-data or should this be the responsibility of the client?