code: def run(self, name, cache_key,
              local_path, remote_path,
              local_options, remote_options, **kwargs):
          
          local = import_attribute(local_path)(**local_options)
          remote = import_attribute(remote_path)(**remote_options)
          result = self.transfer(name, local, remote, **kwargs)
  
          if result is True:
              cache.set(cache_key, True)
              file_transferred.send(sender=self.__class__,
                                    name=name, local=local, remote=remote)
          elif result is False:
              args = [name, cache_key, local_path,
                      remote_path, local_options, remote_options]
              self.retry(args=args, kwargs=kwargs)
          else:
              raise ValueError("Task '%s' did not return True/False but %s" %
                               (self.__class__, result))
          return result
docs: The main work horse of the transfer task. Calls the transfer
          method with the local and remote storage backends as given
          with the parameters.
  
          :param name: name of the file to transfer
          :type name: str
          :param local_path: local storage class to transfer from
          :type local_path: str
          :param local_options: options of the local storage class
          :type local_options: dict
          :param remote_path: remote storage class to transfer to
          :type remote_path: str
          :param remote_options: options of the remote storage class
          :type remote_options: dict
          :param cache_key: cache key to set after a successful transfer
          :type cache_key: str
          :rtype: task result