first push
This commit is contained in:
75
ticket/helper.py
Normal file
75
ticket/helper.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import base64
|
||||
import io
|
||||
import os
|
||||
import random
|
||||
import string
|
||||
|
||||
import boto3
|
||||
from PIL import Image
|
||||
|
||||
from ticket.bucket import RASADYAR_ENDPOINT, RASADYAR_BUCKET_NAME, RASADYAR_ACCESS_KEY, RASADYAR_SECRET_KEY
|
||||
|
||||
ARVAN_TICKET_GALLERY = "https://profileimagedefault.s3.ir-thr-at1.arvanstorage.ir/"
|
||||
# ARVAN_TICKET_GALLERY = "https://ticketgallery.s3.ir-thr-at1.arvanstorage.com/"
|
||||
ARVAN_User_Image_URL = 'https://profileimagedefault.s3.ir-thr-at1.arvanstorage.ir/'
|
||||
|
||||
|
||||
def send_image_to_server(image):
|
||||
ran = ''.join(random.choices(string.ascii_uppercase + string.digits, k=15))
|
||||
imgdata = base64.b64decode(image)
|
||||
img = Image.open(io.BytesIO(imgdata))
|
||||
|
||||
img.thumbnail((500, 500))
|
||||
|
||||
buffer = io.BytesIO()
|
||||
img.save(buffer, format="PNG")
|
||||
buffer.seek(0)
|
||||
|
||||
s3_resource = boto3.resource(
|
||||
's3',
|
||||
endpoint_url=RASADYAR_ENDPOINT,
|
||||
aws_access_key_id=RASADYAR_ACCESS_KEY,
|
||||
aws_secret_access_key=RASADYAR_SECRET_KEY
|
||||
)
|
||||
|
||||
bucket = s3_resource.Bucket(RASADYAR_BUCKET_NAME)
|
||||
bucket.put_object(
|
||||
ACL='public-read',
|
||||
Body=buffer,
|
||||
Key=ran + '.jpg',
|
||||
ContentType='image/png'
|
||||
)
|
||||
|
||||
image_url = f"{RASADYAR_ENDPOINT}/{RASADYAR_BUCKET_NAME}/{ran + '.jpg'}"
|
||||
|
||||
return image_url
|
||||
|
||||
|
||||
def upload_listed_image(req=None, field=None):
|
||||
image_list = []
|
||||
if req.data[field] != []:
|
||||
for item in req.data[field]:
|
||||
image_list.append(send_image_to_server(item))
|
||||
req.data.pop(field)
|
||||
req.data[field] = image_list
|
||||
elif req.data[field] == "":
|
||||
req.data[field] = "empty"
|
||||
return req
|
||||
|
||||
|
||||
def send_image_to_server_for_poultry_science(image, name):
|
||||
s3 = boto3.client(
|
||||
's3',
|
||||
endpoint_url=RASADYAR_ENDPOINT,
|
||||
aws_access_key_id=RASADYAR_ACCESS_KEY,
|
||||
aws_secret_access_key=RASADYAR_SECRET_KEY
|
||||
)
|
||||
|
||||
s3.upload_fileobj(
|
||||
image,
|
||||
RASADYAR_BUCKET_NAME,
|
||||
name,
|
||||
ExtraArgs={'ACL': 'public-read'} # دسترسی عمومی
|
||||
)
|
||||
|
||||
return f"{RASADYAR_ENDPOINT}/{RASADYAR_BUCKET_NAME}/{name}"
|
||||
Reference in New Issue
Block a user