code: def uploadFile(self, filename, ispickle=False, athome=False):
          
          print("Uploading file {} to Redunda.".format(filename))
  
          _, tail = os.path.split(filename)
          
          url = "https://redunda.sobotics.org/bots/data/{}?key={}".format(tail, self.key)
          
          #Set the content type to 'application/octet-stream'
          header = {"Content-type": "application/octet-stream"}
          
          filedata = ""
  
          if athome:
              filename = str(os.path.expanduser("~")) + filename
  
          #Read the data from a file to a string.
          if filename.endswith(".pickle") or ispickle:
              try:
                  with open(filename, "rb") as fileToRead:
                      data = pickle.load(fileToRead)
              except pickle.PickleError as perr:
                  print("Pickling error occurred: {}".format(perr))
                  return
              filedata = json.dumps(data)
          else:
              try:
                  with open(filename, "r") as fileToRead:
                      filedata = fileToRead.read()
              except IOError as ioerr:
                  print("IOError occurred: {}".format(ioerr))
                  return
  
          requestToMake = request.Request(url, data=filedata.encode("utf-8"), headers=header)
  
          #Make the request.
          response = request.urlopen(requestToMake)
  
          if response.code >= 400:
              print("Error occurred while uploading file '{}' with error code {}.".format(filename,response.code))
docs: Uploads a single file to Redunda.
  
          :param str filename: The name of the file to upload
          :param bool ispickle: Optional variable to be set to True is the file is a pickle; default is False.
          :returns: returns nothing