Changed cache key to link instead of file name to avoid name collisions from same file in different folders, check file existence and warn instead of failure