code: def find_or_save(self, filename, store_dir):
      source_name, ext = os.path.splitext(os.path.basename(filename))
      md5sum = get_digest(filename)
      store_name = source_name + "_" + md5sum + ext
      store_path = s3_join(store_dir, store_name)
      if len(self._list_s3_subdirs(prefix=store_path)) == 0:
          self.save_file(filename, store_path)
      return store_path, md5sum
  
imports: import json
  import os
  import os.path
  from sacred.commandline_options import cli_option
  from sacred.dependencies import get_digest
  from sacred.observers.base import RunObserver
  from sacred.serializer import flatten
  import re
  import socket
label_desc: Use image node_id 10 for calling the S3Observer obj's underlying member method code with example usage: obj.find_or_save(filename, store_dir) and returns: store_path,  md5sum