class_docstr: This class deals with all handler-related storage requirements, from storing metadata to synchronizing folders
  across instances.
class_docstr_tok: ["This","class","deals","with","all","handler-related","storage","requirements",",","from","storing","metadata","to","synchronizing","folders","across","instances","."]
code: def export_files(self) -> bytes:
      if self.is_empty():
          return None
      folder_path = self.folder_get("")
  
      zip_fd = io.BytesIO()
  
      with zipfile.ZipFile(zip_fd, "w", zipfile.ZIP_DEFLATED) as zipf:
          for root, dirs, files in os.walk(folder_path):
              for file_name in files:
                  if file_name in SERVICE_FILES_NAMES:
                      continue
                  abs_path = os.path.join(root, file_name)
                  zipf.write(
                      abs_path, os.path.relpath(abs_path, folder_path)
                  )
  
      zip_fd.seek(0)
      return zip_fd.read()
  
imports: import os
  import re
  import io
  import zipfile
  from typing import Union
  import mindsdb.interfaces.storage.db
  from .fs import RESOURCE_GROUP, FileStorageFactory, SERVICE_FILES_NAMES
  from .json import get_json_storage
label_desc: Use image node_id 16 for calling the HandlerStorage obj's underlying member method code with example usage: obj.export_files() and returns: zip_fd, None