code: def _setup_storage_handler(self, art_dict):
      if self.key is not None:
          # Artifact is already stored in our shared blob-cache:
          self.storage_handler = (
              storage_setup.get_storage_artifact_store()
          )
          return
  
      if self.remote_path is not None:
          if self._is_s3_endpoint():
              s3_config_dict, _ = self._build_s3_config(art_dict)
              factory = StorageHandlerFactory.get_factory()
              self.storage_handler = factory.get_handler(
                  StorageType.storageS3, s3_config_dict
              )
              return
  
          if self.remote_path.startswith(
              "http://"
          ) or self.remote_path.startswith("https://"):
              http_config_dict: Dict = self._build_http_config()
              factory = StorageHandlerFactory.get_factory()
              self.storage_handler = factory.get_handler(
                  StorageType.storageHTTP, http_config_dict
              )
              return
  
      if self.local_path is not None:
          self.storage_handler = (
              storage_setup.get_storage_artifact_store()
          )
          return
  
      raise NotImplementedError(
          "FAILED to setup storage handler for artifact: {0} {1}".format(
              self.name, repr(art_dict)
          )
      )
  
imports: import hashlib
  import os
  import re
  import tarfile
  from typing import Dict
  from studio.artifacts import artifacts_tracker
  from studio.util import util, logs
  from studio.credentials import credentials
  from studio.storage import storage_setup
  from studio.storage.storage_type import StorageType
  from studio.storage.storage_handler import StorageHandler
  from studio.storage.storage_handler_factory import StorageHandlerFactory
  from studio.storage.storage_util import tar_artifact, untar_artifact
label_desc: Use image node_id 17 for calling the Artifact obj's underlying member method code with example usage: obj._setup_storage_handler(art_dict) without return types