code: def get_artifact_by_location(
      self,
      ds_type,
      location,
      data_metadata,
      flow_name,
      run_id,
      step_name,
      task_id,
      name,
  ):
      ds_cls = self._get_datastore_storage_impl(ds_type)
      ds_root = ds_cls.get_datastore_root_from_location(
          location, flow_name
      )
      return self.get_artifact(
          ds_type,
          ds_root,
          data_metadata,
          flow_name,
          run_id,
          step_name,
          task_id,
          name,
      )
  
imports: from __future__ import print_function
  from collections import OrderedDict
  import os
  import sys
  import time
  from tempfile import NamedTemporaryFile
  from hashlib import sha1
  from metaflow.datastore import FlowDataStore
  from metaflow.datastore.content_addressed_store import BlobCache
  from metaflow.exception import MetaflowException
  from metaflow.metaflow_config import CLIENT_CACHE_PATH, CLIENT_CACHE_MAX_SIZE, CLIENT_CACHE_MAX_FLOWDATASTORE_COUNT, CLIENT_CACHE_MAX_TASKDATASTORE_COUNT
  from metaflow.plugins import DATASTORES
label_desc: Use image node_id 10 for calling the FileCache obj's underlying member method code with example usage: obj.get_artifact_by_location(ds_type, location, data_metadata, flow_name, run_id, step_name, task_id, name) and returns: self