class_docstr: Data provider communicating with API server.
class_docstr_tok: ["Data","provider","communicating","with","API","server","."]
code: def __init__(
      self, config, verbose=10, blocking_auth=True, compression=None
  ):
      # TODO: implement connection
      self.url = config.get("serverUrl", None)
      self.verbose = get_storage_verbose_level()
      self.logger = logs.get_logger("HTTPProvider")
      self.logger.setLevel(self.verbose)
  
      self.credentials: Credentials = Credentials.get_credentials(
          config
      )
  
      self.storage_handler = HTTPStorageHandler(
          self.url,
          self.credentials.to_dict() if self.credentials else None,
          compression=compression,
      )
  
      self.auth = None
      guest = config.get("guest", None)
      if not guest and "serviceAccount" not in config.keys():
          self.auth = get_auth(
              config.get("authentication", None), blocking_auth
          )
  
      self.compression = compression
      if self.compression is None:
          self.compression = config.get("compression", None)
  
imports: import requests
  import json
  import time
  import re
  from studio.util import logs
  from studio.auth import get_auth
  from studio.credentials.credentials import Credentials
  from studio.storage.storage_setup import get_storage_verbose_level
  from studio.storage.http_storage_handler import HTTPStorageHandler
  from studio.experiments.experiment import experiment_from_dict
  from studio.util.util import retry, check_for_kb_interrupt
label_desc: Use image node_id 1 to create a new HTTPProvider object from inherited base classes: object with example: obj = HTTPProvider(config, verbose, blocking_auth, compression)