Does there exist a project or a body of code (an apache project or something else) that woud implement an interface to dealing with files that may be stored in a hard drive or on a webdav server or in a database (but a way to interact with all of these files the same way)? For example, an interface that would implement things like "coping" a file from one location to another, deleting a file, adding a new file, downloading a copy of the file, etc. (real or virtual -- as in the case of a database, there might be a virtual hierarchy of the files). This would be for a backend to a web application (but also possibly have a non-web based GUI client).
The one project that seems to do some of these things is Jakarta Slide, which seems to have a lot of emphasis on WebDav, but doesn't seem tied to WebDav.
If there are several projects that achieve this, is there one that also allows for metadata to be attached with the files, in a way that based on the metadata, different "virtual hierarchies" of those files can produced?
Thank you for any help/assistence you might have.