class_docstr: A cache for output files that uses a provenance hash value that
  describes all steps, parameters, and software needed to generate
  each output file. This is the remote version.
code: def _get_storage_objects(
      self, job: Job, cache_mode: str, check_output_exists=False
  ):
      provenance_hash = self.provenance_hash_map.get_provenance_hash(
          job, cache_mode
      )
  
      for outputfile, ext in self.get_outputfiles(job):
          if check_output_exists and not os.path.exists(outputfile):
              raise WorkflowError(
                  "Cannot move output file {} to cache. It does not exist "
                  "(maybe it was not created by the job?)."
              )
  
          storage_object = self.storage_provider.object(
              f"{self.cache_location}/{provenance_hash}{ext}"
          )
          storage_object.set_local_path(Path(outputfile))
          yield storage_object
  
file_path: snakemake/snakemake/caching/storage.py
imports: import os
  from pathlib import Path
  from snakemake.caching import AbstractOutputFileCache
  from snakemake.exceptions import WorkflowError
  from snakemake.jobs import Job
  from snakemake_interface_storage_plugins.storage_provider import StorageProviderBase
label_desc: Use image node_id 2 for calling the OutputFileCache obj's underlying member method code with example usage: obj._get_storage_objects(job, cache_mode, check_output_exists) without return types