I think I'm dealing with the same situation, however, I'm going about it a little differently. I'm storing files in
uploads/users/user_id/filename My user_id is a cypher of characters [A-Z][a-z][0-9] with a length anywhere from 8 to 12 characters or so. The filename is another cypher created automatically by web2py, following the table.field approach. One thing I'm thinking about is taking the user/user_id/filename structure entirely outside of web2py. The reason is that my server has 2 disk partitions and I might want to have these files resident under C:/ or D:/ Another reason is that I might want to gradually move these files to the cloud or another server. I'm wondering whether this is reasonable and even possible to do from within a web2py app working around the web2py way.