code: def oss_scandir(dirname: path_type):
      dirname = stringify_path(dirname)
      if not dirname.endswith("/"):
          dirname = dirname + "/"
      (
          bucket,
          key,
          access_key_id,
          access_key_secret,
          end_point,
      ) = parse_osspath(dirname)
      oss_bucket = _get_oss_bucket(
          bucket, access_key_id, access_key_secret, end_point
      )
      dirname_set = set()
      for obj in oss2.ObjectIteratorV2(oss_bucket, prefix=key):
          rel_path = obj.key[len(key) :]
          try:
              inside_dirname, inside_filename = rel_path.split("/", 1)
          except ValueError:
              inside_dirname = None
              inside_filename = rel_path
          if inside_dirname is not None:
              if inside_dirname in dirname_set:
                  continue
              dirname_set.add(inside_dirname)
              yield OSSFileEntry(
                  os.path.join(dirname, inside_dirname),
                  is_dir=True,
                  is_file=False,
                  stat={
                      "name": os.path.join(dirname, inside_dirname),
                      "type": "directory",
                      "size": 0,
                      "modified_time": -1,
                  },
              )
          else:
              yield OSSFileEntry(
                  os.path.join(dirname, inside_filename),
                  is_dir=False,
                  is_file=True,
                  stat={
                      "name": os.path.join(dirname, inside_filename),
                      "type": "file",
                      "size": obj.size,
                      "modified_time": obj.last_modified,
                  },
              )
  
imports: import base64
  import json
  import os
  from ..base import path_type, stringify_path
  from ....utils import lazy_import
label_desc: Use image node_id 6 for calling a global function with example usage: oss_scandir(dirname) without return types