103 lines
3.8 KiB
Python
103 lines
3.8 KiB
Python
from obs import ObsClient
|
|
import obs
|
|
from datetime import datetime
|
|
#from config import cfg
|
|
from utils.config import cfg
|
|
import os,threading
|
|
import time as ti
|
|
import base64,requests,cv2,shutil
|
|
lock = threading.Lock()
|
|
obsClient = ObsClient(
|
|
access_key_id='LHXJC7GIC2NNUUHHTNVI',
|
|
secret_access_key='sVWvEItrFKWPp5DxeMvX8jLFU69iXPpzkjuMX3iM',
|
|
server='https://obs.cn-east-3.myhuaweicloud.com'
|
|
)
|
|
bucketName = 'ieemoo-ai'
|
|
headers = obs.SetObjectMetadataHeader()
|
|
headers.cacheControl = "no-cache"
|
|
|
|
def AddObs(file_path, status):
|
|
with lock:
|
|
if not cfg.flag:
|
|
addobs(file_path, status)
|
|
os.remove(file_path)
|
|
else:
|
|
if status == '02':
|
|
addobs(file_path, status)
|
|
else:
|
|
objectkey = os.path.basename(file_path)
|
|
f_dist = os.sep.join([cfg.tempvideos, status+'_'+objectkey])
|
|
shutil.move(file_path, f_dst)
|
|
|
|
def addobs(file_path, status): #save videos
|
|
T1 = ti.time()
|
|
ti.sleep(1)
|
|
num = 0
|
|
videoUuid = os.path.basename(file_path).split('_')[1]
|
|
json_data = {'videoUuid': videoUuid}
|
|
resp = requests.post(url=cfg.Vre,
|
|
data=json_data)
|
|
status = resp.json()
|
|
if not 'data' in status:#延迟设置
|
|
for _ in range(20):
|
|
ti.sleep(1)
|
|
num += 1
|
|
resp = requests.post(url=cfg.Vre, data=json_data)
|
|
status = resp.json()
|
|
if not 'data' in status:
|
|
continue
|
|
else:break
|
|
T2 = ti.time()
|
|
print('videoUuid>>>{} get_status_time>>>{}'.format((videoUuid), (T2-T1)))
|
|
status = status['data']
|
|
|
|
objectkey = os.path.basename(file_path)
|
|
time = os.path.basename(file_path).split('-')[0]
|
|
if objectkey.split('.')[-1] in ['avi','mp4']:
|
|
objectkey = 'videos/'+time+'/'+status+'/'+status+'_'+objectkey
|
|
resp = obsClient.putFile(bucketName, objectkey, file_path, headers=headers)
|
|
#os.remove(file_path)
|
|
|
|
def updateAgain():
|
|
try:
|
|
for name in os.listdir(cfg.VIDEOPATH):
|
|
file_path = os.sep.join([cfg.VIDEOPATH, name])
|
|
videoUuid = os.path.basename(file_path).split('_')[1]
|
|
json_data = {'videoUuid': videoUuid}
|
|
resp = requests.post(url=cfg.Vre,
|
|
data=json_data)
|
|
status = resp.json()
|
|
status = status['data']
|
|
|
|
objectkey = os.path.basename(file_path)
|
|
time = os.path.basename(file_path).split('-')[0]
|
|
if objectkey.split('.')[-1] in ['avi','mp4']:
|
|
objectkey = 'videos/'+time+'/'+status+'/'+status+'_'+objectkey
|
|
resp = obsClient.putFile(bucketName, objectkey, file_path, headers=headers)
|
|
os.remove(file_path)
|
|
except Exception as e:
|
|
pass
|
|
|
|
def Addimg(uuid_barcode):
|
|
time = uuid_barcode.split('-')[0].split('_')[-1]
|
|
objectkey = 'imgs/'+time+'/'+uuid_barcode+'.jpg'
|
|
file_path = os.sep.join([cfg.Tempimg, '5_'+uuid_barcode+'.jpg'])
|
|
if not os.path.exists(file_path):
|
|
file_path = os.sep.join([cfg.Tempimg, '3_'+uuid_barcode+'.jpg'])
|
|
if not os.path.exists(file_path):
|
|
file_path = os.sep.join([cfg.Tempimg, 'ex_'+uuid_barcode+'.jpg'])
|
|
resp = obsClient.putFile(bucketName, objectkey, file_path, headers=headers)
|
|
|
|
def Addimg_content(uuid_barcode, context):
|
|
success, encoded_image = cv2.imencode(".jpg",context)
|
|
context = encoded_image.tobytes()
|
|
time = uuid_barcode.split('-')[0]
|
|
objectkey = 'imgs/'+time+'/'+uuid_barcode+'.jpg'
|
|
resp = obsClient.putContent(bucketName, objectkey, context, headers=headers)
|
|
|
|
if __name__ == '__main__':
|
|
import cv2
|
|
context = cv2.imread('/home/lc/project/ieemoo-ai-search/data/imgs/20230625-094651_37dd99b0-520d-457b-8615-efdb7f53b5b4_6907992825762.jpg')
|
|
uuid_barcode = '20230625-094651_37dd99b0-520d-457b-8615-efdb7f53b5b4'
|
|
Addimg_content(uuid_barcode, context)
|