Browse Source

查询推送图片兼容华为云

locky 11 tháng trước cách đây
mục cha
commit
f137e48ba0
2 tập tin đã thay đổi với 26 bổ sung1 xóa
  1. 6 0
      Ansjer/config.py
  2. 20 1
      Controller/DetectControllerV2.py

+ 6 - 0
Ansjer/config.py

@@ -36,6 +36,12 @@ PAY_TYPE_IN_APP_PURCHASE = 5
 PAY_TYPE_EXPERIENCE = 10
 PAY_TYPE_CDK = 11
 
+# 华为云配置
+HUAWEICLOUD_AK = 'TN9T7ZPN3QRBBQ9NQHNB'
+HUAWEICLOUD_SK = 'rIlTBJ85MUC1WNLyJBZM2077HTsQ0qJaJf4IpTjU'
+HUAWEICLOUD_OBS_SERVER = 'https://obs.cn-east-3.myhuaweicloud.com'
+HUAWEICLOUD_PUSH_BUKET = 'asj-push'
+
 # 阿里云AccessKey和AccessKeySecret
 ALI_ACCESS_KEY_ID = 'LTAI5t9BXQWTPfBEh2Qu8YNA'
 ALI_ACCESS_KEY_SECRET = '8TcEjHkHGsJaknbHlHzZP4HXQ7GuvT'

+ 20 - 1
Controller/DetectControllerV2.py

@@ -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:  # 华为云
+                        create_res = obs_client.createSignedUrl(
+                            method='GET', bucketName=HUAWEICLOUD_PUSH_BUKET, objectKey=thumbspng, expires=300)
+                        img_url = create_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:  # 华为云
+                            create_res = obs_client.createSignedUrl(
+                                method='GET', bucketName=HUAWEICLOUD_PUSH_BUKET, objectKey=thumbspng, expires=300)
+                            img_url = create_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)