|
@@ -9,9 +9,11 @@ import redis
|
|
|
from botocore import client
|
|
|
from django.http import JsonResponse
|
|
|
from django.views.generic.base import View
|
|
|
+from obs import ObsClient
|
|
|
|
|
|
from Ansjer.config import DETECT_PUSH_DOMAIN, DETECT_PUSH_DOMAINS, DETECT_PUSH_DOMAIN_JIUAN, DETECT_PUSH_DOMAINS_JIUAN, \
|
|
|
- OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, LOGGER, ALGORITHM_COMBO_TYPES
|
|
|
+ OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, LOGGER, ALGORITHM_COMBO_TYPES, \
|
|
|
+ HUAWEICLOUD_AK, HUAWEICLOUD_SK, HUAWEICLOUD_OBS_SERVER, HUAWEICLOUD_PUSH_BUKET
|
|
|
from Ansjer.config import PUSH_BUCKET, CONFIG_INFO, CONFIG_CN, CONFIG_EUR, CONFIG_US
|
|
|
from Ansjer.config import PUSH_REDIS_ADDRESS
|
|
|
from Model.models import Device_Info, Equipment_Info, UidSetModel, UidPushModel, CompanyModel, SysMsgModel, \
|
|
@@ -356,8 +358,15 @@ class DetectControllerViewV2(View):
|
|
|
return response.json(0, {'datas': [], 'count': 0})
|
|
|
|
|
|
res = []
|
|
|
+ # 华为云
|
|
|
+ obs_client = ObsClient(
|
|
|
+ access_key_id=HUAWEICLOUD_AK, secret_access_key=HUAWEICLOUD_SK, server=HUAWEICLOUD_OBS_SERVER)
|
|
|
+
|
|
|
+ # 阿里云
|
|
|
auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
|
|
|
oss_img_bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
|
|
|
+
|
|
|
+ # aws
|
|
|
aws_s3 = boto3.client(
|
|
|
's3',
|
|
|
aws_access_key_id=AWS_ACCESS_KEY_ID[1],
|
|
@@ -372,6 +381,8 @@ class DetectControllerViewV2(View):
|
|
|
config=botocore.client.Config(signature_version='s3v4'),
|
|
|
region_name='cn-northwest-1'
|
|
|
)
|
|
|
+
|
|
|
+ # oci
|
|
|
# 国内生产环境默认不实例OCI对象
|
|
|
oci = self.get_oci_client()
|
|
|
redis_obj = RedisObject(3)
|
|
@@ -391,6 +402,10 @@ class DetectControllerViewV2(View):
|
|
|
thumbspng = '{}/{}/{}.jpeg'.format(uid, channel, event_time)
|
|
|
if storage_location == 1: # 阿里云oss
|
|
|
img_url = oss_img_bucket.sign_url('GET', thumbspng, 300)
|
|
|
+ elif storage_location == 5: # 华为云
|
|
|
+ res = obs_client.createSignedUrl(
|
|
|
+ method='GET', bucketName=HUAWEICLOUD_PUSH_BUKET, objectKey=thumbspng, expires=300)
|
|
|
+ img_url = res.signedUrl
|
|
|
elif storage_location in [3, 4]:
|
|
|
prefix_name = f'{uid}/'
|
|
|
img_url = DetectControllerViewV2.oci_object_url(oci, redis_obj, uid, prefix_name)
|
|
@@ -452,6 +467,10 @@ class DetectControllerViewV2(View):
|
|
|
thumbspng = '{}/{}/{}_{}.jpeg'.format(uid, channel, event_time, i)
|
|
|
if storage_location == 1: # 阿里云oss
|
|
|
img_url = oss_img_bucket.sign_url('GET', thumbspng, 300)
|
|
|
+ elif storage_location == 5: # 华为云
|
|
|
+ res = obs_client.createSignedUrl(
|
|
|
+ method='GET', bucketName=HUAWEICLOUD_PUSH_BUKET, objectKey=thumbspng, expires=300)
|
|
|
+ img_url = res.signedUrl
|
|
|
elif storage_location in [3, 4]: # 国外OCI云
|
|
|
prefix_name = f'{uid}/'
|
|
|
img_url = DetectControllerViewV2.oci_object_url(oci, redis_obj, uid, prefix_name)
|