As for item 1) , there is a bit of work involved to get the file path. In the table file_repo_attributes there are three fields, id, attribute, value. The id field entries contain the path and file name concatenated. For each uploaded file, there are three attribute entries, name, size and type. You find the path by breaking down the id field entry.
Take the id entry ad4fa937c32b2c05d48dd0e17f773ae965c1ab0d
Under the upload directory:
ad4 is a child directory of upload
fa9 is a child directory of ad4
37c is a child directory of fa9
32b2c05d48dd0e17f773ae965c1ab0d is the file name in the 37c directory.
In the table file_repo_attributes you will have three id values for ad4fa937c32b2c05d48dd0e17f773ae965c1ab0d, one associated with the name attribute of the file you uploaded (mydoc.odg), one associated with the size attribute of the file in bytes (16000) and one associated with file type attribute 'application/vnd.oasis.opendocument.graphics';
I haven't looked to see how the file name or id values are calculated/created. Someone with more knowledge could probably make more sense of this and provide some direction as to a best practice for accessing the files via the path.