52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
import argparse
|
|
import os
|
|
|
|
from tqdm import tqdm
|
|
|
|
from pyinfra.storage.minio import MinioHandle
|
|
|
|
|
|
def parse_args():
|
|
parser = argparse.ArgumentParser()
|
|
|
|
subparsers = parser.add_subparsers(help="sub-command help", dest="command")
|
|
|
|
parser_add = subparsers.add_parser("add", help="Add file(s) to the MinIO store")
|
|
parser_add.add_argument("dossier_id")
|
|
add_group = parser_add.add_mutually_exclusive_group(required=True)
|
|
add_group.add_argument("--file", "-f")
|
|
add_group.add_argument("--directory", "-d")
|
|
|
|
parser_remove = subparsers.add_parser("remove", help="Remove a file from the MinIO store")
|
|
parser_remove.add_argument("dossier_id")
|
|
parser_remove.add_argument("file_path")
|
|
|
|
subparsers.add_parser("purge", help="Delete all files and buckets in the MinIO store")
|
|
|
|
args = parser.parse_args()
|
|
return args
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
client = MinioHandle()
|
|
|
|
args = parse_args()
|
|
|
|
if args.command == "add":
|
|
|
|
if args.file:
|
|
client.add_file_compressed(args.file, folder=args.dossier_id)
|
|
|
|
elif args.directory:
|
|
for fname in tqdm([*os.listdir(args.directory)], desc="Adding files"):
|
|
path = os.path.join(args.directory, fname)
|
|
client.add_file_compressed(path, folder=args.dossier_id)
|
|
|
|
elif args.command == "remove":
|
|
fname = os.path.basename(args.file_path)
|
|
client.remove_file(folder=args.dossier_id, filename=fname)
|
|
|
|
elif args.command == "purge":
|
|
client.purge()
|