FileField Stats is a small module which provides a new formatter that outputs a special link for tracking downloads.
Each download tracks the File ID, User ID, Node ID, Host IP & Referrer URI and a timestamp.
The formatter will produce a URL like this:
This URL works in a similar way to the ImageCache module. It provides a drupal callback within the files folder. This URL contains the File ID, the Node ID, the User ID and a special "hash" which is made up of the 3 ID's and the websites special private key. This means each user gets a unique ID. You cannot simply change the File ID to start scanning the website for files as this will invalidate the hash on the end of the URL. Without knowing the websites random 64 character private key, a user cannot regenerate this hash for themselves.
Once the URL is validated (ie, the system confirms the hash matches the requested file for the requested node by the requesting user), the file is served by Drupal.
25th Nov 2011: I have just added fietserwin as a co-maintainer. He's offered to take on the issue queue and bring this module up to scratch. Exciting times! :-)