Refactor to support FTP as the file service