File size: 2,114 Bytes
fd50325
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""

Setup script to create the nlp-images bucket in MinIO

"""

import os
from dotenv import load_dotenv
from minio import Minio
from minio.error import S3Error
import logging

load_dotenv()

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

MINIO_ENDPOINT = os.getenv("MINIO_ENDPOINT", "s3.eu-central-003.backblazeb2.com")
MINIO_ACCESS_KEY = os.getenv("MINIO_ACCESS_KEY", "00367479ffb7e4e0000000001")
MINIO_SECRET_KEY = os.getenv("MINIO_SECRET_KEY", "K003opTvf92ijRj5dM7H1dgrlwcGTdA")
MINIO_SECURE = os.getenv("MINIO_SECURE", "true").lower() == "true"
MINIO_REGION = os.getenv("MINIO_REGION", "eu-central-003")
NLP_IMAGES_BUCKET = "nlp-images"

def setup_nlp_bucket():
    """Create the nlp-images bucket if it doesn't exist"""
    try:
        client = Minio(
            MINIO_ENDPOINT,
            access_key=MINIO_ACCESS_KEY,
            secret_key=MINIO_SECRET_KEY,
            secure=MINIO_SECURE,
            region=MINIO_REGION
        )
        
        if client.bucket_exists(NLP_IMAGES_BUCKET):
            logger.info(f"βœ… MinIO bucket '{NLP_IMAGES_BUCKET}' already exists")
            return True
        else:
            logger.info(f"Creating MinIO bucket '{NLP_IMAGES_BUCKET}'...")
            client.make_bucket(NLP_IMAGES_BUCKET)
            logger.info(f"βœ… MinIO bucket '{NLP_IMAGES_BUCKET}' created successfully")
            return True
    except S3Error as e:
        if e.code == "BucketAlreadyOwnedByYou" or e.code == "BucketAlreadyExists":
            logger.info(f"βœ… MinIO bucket '{NLP_IMAGES_BUCKET}' already exists")
            return True
        else:
            logger.error(f"❌ Error creating bucket: {e}")
            return False
    except Exception as e:
        logger.error(f"❌ Error connecting to MinIO: {e}")
        return False

if __name__ == "__main__":
    logger.info("Setting up nlp-images bucket...")
    success = setup_nlp_bucket()
    if success:
        logger.info("βœ… Setup complete!")
    else:
        logger.error("❌ Setup failed!")
        exit(1)