code: def list_files(self, file_path: str):
      # 1: Get the local file path of the file server.
      file_path = self.get_filepath(file_path)
  
      # 2: If the file exists in the drive, transfer it locally.
      if not os.path.exists(file_path):
          self.drive.get(file_path)
  
      if os.path.isdir(file_path):
          result = set()
          for _, _, f in os.walk(file_path):
              for file in f:
                  if not file.endswith(".meta"):
                      for filename, meta in self.uploaded_files.items():
                          if meta["uploaded_file"] == file:
                              result.add(filename)
          return {"asset_names": [v for v in result]}
  
      # 3: If the filepath is a tar or zip file, list their contents
      if zipfile.is_zipfile(file_path):
          with zipfile.ZipFile(file_path, "r") as zf:
              result = zf.namelist()
      elif tarfile.is_tarfile(file_path):
          with tarfile.TarFile(file_path, "r") as tf:
              result = tf.getnames()
      else:
          raise ValueError("Cannot open archive file!")
  
      # 4: Returns the matching files.
      return {"asset_names": result}
  
imports: import json
  import os
  import tarfile
  import uuid
  import zipfile
  from pathlib import Path
  from lightning.app import LightningWork, LightningApp
  from lightning.app.storage import Drive
  import requests
  from lightning import LightningWork
  from lightning import LightningApp, LightningFlow
  from lightning.app.runners import MultiProcessRuntime
  from lightning.app.testing import run_app_in_cloud
label_desc: Use image node_id 5 for calling the FileServer obj's underlying member method code with example usage: obj.list_files(file_path) and returns: dict, dict