# File lib/chef/cookbook/synchronizer.rb, line 170
    def sync_file_in_cookbook(cookbook, file_manifest)
      cache_filename = File.join("cookbooks", cookbook.name, file_manifest['path'])
      mark_cached_file_valid(cache_filename)

      # If the checksums are different between on-disk (current) and on-server
      # (remote, per manifest), do the update. This will also execute if there
      # is no current checksum.
      if !cached_copy_up_to_date?(cache_filename, file_manifest['checksum'])
        download_file(file_manifest['url'], cache_filename)
        @events.updated_cookbook_file(cookbook.name, cache_filename)
      else
        Chef::Log.debug("Not storing #{cache_filename}, as the cache is up to date.")
      end

      cache_filename
    end