Hot restore file storage minio

#!/bin/bash

# TheHive attachment variables
MINIO_ARCHIVE_PATH=/mnt/backup/minio/

# MinIO variables
MINIO_ENDPOINT="<minio_server_url>"
MINIO_ACCESS_KEY="<access_key>"
MINIO_SECRET_KEY="<secret_key>"
MINIO_BUCKET="thehive"
MINIO_ALIAS=th_minio

# Check if MinIO is accessible
if ! mcli ls ${MINIO_ALIAS} > /dev/null 2>&1; then
    echo "Error: Cannot connect to MinIO server"
    exit 1
fi

# Look for the latest backup snapshot in MinIO
MINIO_BACKUP_LIST=(${MINIO_ARCHIVE_PATH}/minio_????????_??h??m??s.tar)
MINIO_LATEST_BACKUP_NAME=$(basename ${MINIO_BACKUP_LIST[-1]})

if [ -z "${LATEST_BACKUP}" ]; then
    echo "Error: No backup snapshots found in ${MINIO_ARCHIVE_PATH}"
    exit 1
fi

echo "Latest attachment files backup snapshot found is ${MINIO_ARCHIVE_PATH}/${MINIO_LATEST_BACKUP_NAME}"

tar xvf "${MINIO_ARCHIVE_PATH}/${MINIO_LATEST_BACKUP_NAME}" -C ${MINIO_ARCHIVE_PATH} > /dev/null
echo "Latest Minio backup archive extracted in ${MINIO_ARCHIVE_PATH}/${MINIO_LATEST_BACKUP_NAME}"

# Restore attachments from MinIO
echo "Restoring attachments from MinIO snapshot ${MINIO_LATEST_BACKUP_NAME}..."
mcli mirror ${MINIO_ARCHIVE_PATH}/${MINIO_LATEST_BACKUP_NAME%.tar} ${MINIO_ALIAS}/${MINIO_BUCKET}/

# Display completion message
echo ""
echo "Attachment files data restoration done!"
echo "Restored from: ${MINIO_ALIAS}/${MINIO_BUCKET}/${LATEST_BACKUP}"