diff --git a/minio-backup/config.yaml b/minio-backup/config.yaml index 006cf97..34563a9 100644 --- a/minio-backup/config.yaml +++ b/minio-backup/config.yaml @@ -1,5 +1,5 @@ name: "Minio Backup" -version: "0.0.4" +version: "0.0.5" slug: minio-backup description: >- "Backup the backup folder using minio." diff --git a/minio-backup/run.py b/minio-backup/run.py index 272bdfb..9bcab9b 100644 --- a/minio-backup/run.py +++ b/minio-backup/run.py @@ -1,12 +1,25 @@ #!/usr/local/bin/python import json +import logging import pathlib +import sys import minio def main(): + logger = logging.getLogger() + logger.setLevel(logging.DEBUG) + + handler = logging.StreamHandler(sys.stdout) + handler.setLevel(logging.DEBUG) + formatter = logging.Formatter( + "%(asctime)s - %(name)s - %(levelname)s - %(message)s" + ) + handler.setFormatter(formatter) + logger.addHandler(handler) + # Load the user configuration. with open("/data/options.json", "r") as f: config = json.load(f) @@ -16,17 +29,26 @@ def main(): access_key=config["minio_access_key"], secret_key=config["minio_secret_key"], ) + logger.info("Created minio client") found = client.bucket_exists(config["minio_bucket"]) if not found: + logger.warn("Creating bucket %s", config["minio_bucket"]) client.make_bucket(config["minio_bucket"]) else: - print(f"Bucket {config['minio_bucket']} already exists") + logger.info("Bucket %s already exists.", config["minio_bucket"]) backup_folder = pathlib.Path("/backup") + backup_files = backup_folder.iterdir() + logger.info("Found the folllowing files in /backup: %s", backup_files) + objects = [x.object_name for x in client.list_objects(config["minio_bucket"])] + logger.info("Found the following files in s3: %s", objects) to_upload = [x for x in backup_folder.iterdir() if x.name not in objects] + logger.warn( + "The following files do not already exist and will be backed up: %s", to_upload + ) for file in to_upload: client.fput_object( @@ -34,7 +56,9 @@ def main(): file.name, str(file.resolve()), ) - print(f"Uploaded {file.name}") + logger.warn("Uploaded %s", file.name) + + logger.info("Done") if __name__ == "__main__":