code: def run(self, bucket_name, filename, path):
          
  
          f = open(path, 'rb')
          self.source_size = os.stat(path).st_size
          total_dict = {}
  
          def cb(part_no, uploaded, total):
  
              total_dict[part_no] = uploaded
  
              params = {
                  'uploaded': round(sum(total_dict.values()) / 1048576, 0),
                  'size': round(self.source_size / 1048576, 0),
              }
  
              p = (self.progress_template + '\r') % params
  
              STREAM.write(p)
              STREAM.flush()
  
          self.output('Uploading to S3', normal=True, arrow=True)
          upload(bucket_name, self.key, self.secret,
                 data_collector(iter(f)), filename, cb,
                 threads=10, replace=True, secure=True, connection=self.conn)
  
          print('\n')
          self.output('Upload Completed', normal=True, arrow=True)
docs: Initiate the upload.
  
          :param bucket_name:
              Name of the S3 bucket
          :type bucket_name:
              String
          :param filename:
              The filname
          :type filename:
              String
          :param path:
              The path to the file that needs to be uploaded
          :type path:
              String
  
          :returns:
              void