code: public void run() {
          logger.info("Running Delete Checker");
  
          while (filesList.hasNext() && !stopped) {
              String contentId = filesList.next();
              if (null != prefix) { // A prefix is being used
                  if (contentId.startsWith(prefix)) {
                      if (!exists(contentId.substring(prefix.length()))) {
                          deleteContent(contentId);
                      }
                  } else { // Content Id does not start with prefix
                      deleteContent(contentId);
                  }
              } else { // A prefix is not being used
                  if (!exists(contentId)) {
                      deleteContent(contentId);
                  }
              }
          }
          complete = true;
      }
docs: Checks each item in the list of files stored at the endpoint (relative
  file paths) against each sync directory to see if there is a matching
  local file. If there is no matching file, that means that the file which
  exists in the endpoint no longer exists in the local source directories
  (i.e. the source file has been deleted.) Each file of this type is
  removed from the endpoint.
  
  Note that if a prefix is used, all files in the endpoint that do not
  have the prefix will be removed (as they cannot be consistent with
  what the content ID will be for files pushed up with the prefix.)