I can't think of any extra that would do that for you.
I think it would make your life a whole lot easier if you left them as files and saved just the information about them in the DB (title, author(s), path/to/file, number or pages, pub date, etc.). It's easy enough to give them all the same name except for the extension. That way you can easily deliver any of them as long as you know the title and extension. If you're worried about security, you can store the files above the web root so no one can access them except through the service you provide.
How you store the information about each eBook depends on how your users will access them. If they'll just be browsing, you could use a resource for each book and Template Variables (TVs) for the information that doesn't fit in the resource fields.
If the users will be using a search form to search for books, however, the above is a bad strategy since TVs suck for searching and sorting. In that case I would probably use ClassExtender or some custom PHP code to add the extra fields to the resource object. That way you could put all the information that might be involved in a search in a custom table, so searching for books and sorting the results would be way faster, but you could still use the Create/Edit Resource form to enter the data.
You could also do it without using Resources at all, which would be even more efficient, but would require a fair amount of custom PHP coding.
Everything here is in a single custom DB table. You can see that searches and the sorting are fairly quick:
http://wordsmatter.softville.com/index.php?id=2