scripts/cronjob/media/heic_to_jpeg.py

57 lines
1.9 KiB
Python

from pymongo import UpdateOne
from lib.all import *
import oss2
from cryptography.hazmat.backends import default_backend as _default_backend
service_name = 'compress'
log_dir = '/app/log'
logger = Logger(service_name, log_dir=log_dir)
access_key_id = "LTAI5tAdu5LRvZwm4LJa21Fo"
access_key_secret = "WGvSQsDralTfFAAxhEqLBOgbXqflHo"
endpoint_internal = "https://oss-cn-hangzhou-internal.aliyuncs.com"
# endpoint_internal = "https://oss-cn-hangzhou.aliyuncs.com"
bucket_name = "wishpal-ironfan-media"
class S:
def __init__(self):
self.bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint_internal, bucket_name)
self.col_image = MongoDB(
host="mongodb://root:Wishpal2024@dds-bp1a72ede37c55d4242490.mongodb.rds.aliyuncs.com:3717/admin",
port=3717,
db="media",
collection="image"
)
print(self.col_image)
def __del__(self):
self.col_image.close()
def upload_img_to_oss(self, local_path: str, oss_src_id: str):
return self.bucket.put_object_from_file(oss_src_id, local_path)
def heic_to_jpg_and_save(self, oss_src_id, local_path):
style = "image/format,jpeg"
return self.bucket.get_object_to_file(oss_src_id, local_path, process=style)
def proc_oen(self):
# 获取所有heic图片
q = {"fmt": "image/heic"}
images = self.col_image.find(q, limit=1)
for img in images:
print(img)
old_key = safe_get_str(img, "src_id")
new_key = old_key + "_h2j"
arr = old_key.split("/")
local_path = arr[len(arr) - 1] + ".jpeg"
ret_save = self.heic_to_jpg_and_save(old_key, local_path)
logger.Info("heic_to_jpg_and_save, ret: {}".format(ret_save.resp))
# ret_upload = self.upload_img_to_oss(local_path, new_key)
s = S()
s.proc_oen()