File size: 1,009 Bytes
d05d972
0d459d9
d05d972
 
c3e7abf
c694efe
 
 
 
 
 
 
 
 
 
0d459d9
c694efe
0d459d9
c694efe
0d459d9
 
 
 
 
 
 
 
 
c694efe
0d459d9
c694efe
 
 
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
import boto3, os
import logging
from uuid import uuid4

def upload_image_to_r2(image_bytes, folder_name="leadgen_vivek", app_type="bulk_generation"):
    try:
        s3 = boto3.client(
            "s3",
            endpoint_url=os.getenv('R2_ENDPOINT'),
            aws_access_key_id=os.getenv('R2_ACCESS_KEY'),
            aws_secret_access_key=os.getenv('R2_SECRET_KEY'),
            region_name="auto"
        )
        
        filename = f"{uuid4().hex}.png"
        
        if folder_name:
            file_key = f"hug_face/{app_type.strip('/')}/{folder_name.strip('/')}/{filename}"
        else:
            file_key = f"hug_face/{app_type.strip('/')}/{filename}"
        
        s3.put_object(
            Bucket=os.getenv('R2_BUCKET_NAME'),
            Key=file_key,
            Body=image_bytes,
            ContentType="image/png"
        )
        
        return f"{os.getenv('NEW_BASE').rstrip('/')}/{file_key}"
        
    except Exception as e:
        logging.error(e)
        return None