def stale_on_remote?(local_file)
      remote_file = @remote.directory.files.head(local_file.key)
      return true unless remote_file # file is missing from remote, therefore stale
      if remote_file.respond_to?(:content_md5) && local_file.respond_to?(:content_md5)
        (
          ( remote_file.content_length != local_file.content_length ) &&
          ( remote_file.content_md5 != local_file.content_md5 )
        )
      else
        true # if we don't know, upload anyway
      end
    end
def stale_on_remote?(local_file)
      remote_file = @remote.directory.files.head(local_file.key)
      return true unless remote_file # file is missing from remote, therefore stale
      if remote_file.respond_to?(:content_md5) && local_file.respond_to?(:content_md5)
        (
          ( remote_file.content_length != local_file.content_length ) &&
          ( remote_file.content_md5 != local_file.content_md5 )
        )
      else
        true # if we don't know, upload anyway
      end
    end
TODO(wenzowski): local_file.should.respond_to?(:content_md5)