<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fetch_file_handler(unused_build_context, target, fetch, package_dir, tar):
 """Handle remote downloadable file URI. Download the file and cache it under the private builer workspace (unless already downloaded), and add it to the package tar. TODO(itamar):
 Support re-downloading if remote changed compared to local. """

    dl_dir = join(package_dir, fetch.name) if fetch.name else package_dir
    fetch_url(fetch.uri,
              join(dl_dir, basename(urlparse(fetch.uri).path)),
              dl_dir)
    tar.add(package_dir, arcname=split_name(target.name))