Takes either a file or a URL