Added a new interface for files

added an interface for files that have knowledge of their url (for example files stored in 3rd party backends)