code: def get_tracked_files(
      cls, path: str, destination: str = None
  ) -> typing.List[ArtifactFileData]:
      url = urlparse(path)
      bucket_name, prefix = url.netloc, url.path.lstrip("/")
  
      if "*" in prefix:
          raise NeptuneUnsupportedArtifactFunctionalityException(
              f"Wildcard characters (*,?) in location URI ({path}) are not supported."
          )
  
      remote_storage = get_boto_s3_client().Bucket(bucket_name)
  
      stored_files: typing.List[ArtifactFileData] = list()
  
      try:
          for remote_object in remote_storage.objects.filter(
              Prefix=prefix
          ):
              # If prefix is path to file get only directories
              if prefix == remote_object.key:
                  prefix = str(pathlib.PurePosixPath(prefix).parent)
  
              remote_key = remote_object.key
              destination = pathlib.PurePosixPath(destination or "")
              relative_file_path = remote_key[
                  len(prefix.lstrip(".")) :
              ].lstrip("/")
  
              file_path = destination / relative_file_path
  
              stored_files.append(
                  ArtifactFileData(
                      file_path=str(file_path).lstrip("/"),
                      file_hash=remote_object.e_tag.strip('"'),
                      type=ArtifactFileType.S3.value,
                      size=remote_object.size,
                      metadata=cls._serialize_metadata(
                          {
                              "location": f's3://{bucket_name}/{remote_key.lstrip("/")}',
                              "last_modified": remote_object.last_modified,
                          }
                      ),
                  )
              )
      except NoCredentialsError:
          raise NeptuneRemoteStorageCredentialsException()
      except (
          remote_storage.meta.client.exceptions.NoSuchBucket,
          remote_storage.meta.client.exceptions.NoSuchKey,
      ):
          raise NeptuneRemoteStorageAccessException(location=path)
  
      return stored_files
  
file_path: neptune-client/src/neptune/internal/artifacts/drivers/s3.py
imports: import pathlib
  import typing
  from datetime import datetime
  from urllib.parse import urlparse
  from botocore.exceptions import NoCredentialsError
  from neptune.exceptions import NeptuneRemoteStorageAccessException, NeptuneRemoteStorageCredentialsException, NeptuneUnsupportedArtifactFunctionalityException
  from neptune.internal.artifacts.types import ArtifactDriver, ArtifactFileData, ArtifactFileType
  from neptune.internal.utils.s3 import get_boto_s3_client
label_desc: Use image node_id 5 for calling the S3ArtifactDriver obj's underlying member method code with example usage: obj.get_tracked_files(cls, path, destination) and returns: stored_files