code: def _uploadFile(self,directory,fn,dentry,db,service):
          
          # Create a hash of the file
          if fn not in db:
              print("%s - Not in DB, must run 'add' first!"%(fn))
          else:
              # If already added, see if it's modified, only then
              # do another upload
              if db[fn]['services'][service]['status']==self.ST_UPTODATE:
                  if not dentry['status']==self.ST_MODIFIED:
                      logger.info("%s - Up to date, skipping (%s)!"\
                              %(fn,service))
                      return False
  
              sobj=self.sman.GetServiceObj(service)
              # If nobody manages this file, just skip it
              if (not sobj):
                  print("%s - Upload: No service of name [%s] found"%(fn,service))
                  return
              # Only change status if correctly uploaded
              if sobj.Upload(directory,fn):
                  # Write newest mtime/hash to indicate all is well
                  db[fn]['mtime']=dentry['mtime']
                  db[fn]['hash']=self._hashfile(os.path.join(directory,fn))
                  db[fn]['services'][service]['status']=self.ST_UPTODATE
                  logger.debug('%s - uploaded by service: %s'%(fn,sobj.GetName()))
                  return True
              else:
                  logger.error('%s - Failed to upload by service: %s'%(fn,sobj.GetName()))
                  return False
  
  
          return False
docs: Uploads file and changes status to 'S'. Looks
          up service name with service string