Преглед на файлове

aws、华为云获取时光相册图片

linhaohong преди 4 месеца
родител
ревизия
f1d828e5ee
променени са 1 файла, в които са добавени 31 реда и са изтрити 19 реда
  1. 31 19
      Roomumy/Controller/TimeAlbumController.py

+ 31 - 19
Roomumy/Controller/TimeAlbumController.py

@@ -1,26 +1,16 @@
 import time
 from datetime import datetime
 
-import oss2
 import boto3
-import botocore.client
-
+import botocore
 from django.core.paginator import Paginator
-from django.db.models import Value
-from django.db.models.functions import Coalesce
 from django.views import View
 from obs import ObsClient
-from Ansjer.pushconfig import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
-from Ansjer.config import HUAWEICLOUD_AK, HUAWEICLOUD_SK, HUAWEICLOUD_OBS_SERVER, HUAWEICLOUD_PUSH_BUKET, \
-    AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, SERVER_TYPE, CONFIG_EUR, CONFIG_US
-from Object.RedisObject import RedisObject
-
-from Object.ResponseObject import ResponseObject
-from Object.OCIObjectStorage import OCIObjectStorage
+from Ansjer.config import HUAWEICLOUD_AK, HUAWEICLOUD_SK, HUAWEICLOUD_OBS_SERVER, CONFIG_INFO, CONFIG_CN, CONFIG_TEST, \
+    AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
 
 from Roomumy.models import TimeAlbum, AlbumMedia, TimeDiary, DiaryAlbumMediaRelation
 from Service.CommonService import CommonService
-from Controller.DetectControllerV2 import DetectControllerViewV2
 
 
 class TimeAlbumView(View):
@@ -224,10 +214,32 @@ class TimeAlbumView(View):
 
     @staticmethod
     def media_url(storage_location, uid, channel, event_time):
-        obj_name = f'roomumy/albumMedia/{uid}/{channel}/{event_time}.jpg'
-        obs_client = ObsClient(
-            access_key_id=HUAWEICLOUD_AK, secret_access_key=HUAWEICLOUD_SK, server=HUAWEICLOUD_OBS_SERVER)
-        create_res = obs_client.createSignedUrl(
-            method='GET', bucketName="asj-app", objectKey=obj_name, expires=600)
-        media_url = create_res.signedUrl
+        if storage_location == 2:
+            obj_name = f'roomumy/albumMedia/{uid}/{channel}/{event_time}.jpeg'
+            if CONFIG_INFO == CONFIG_CN or CONFIG_INFO == CONFIG_TEST:
+                aws_client = boto3.client(
+                    's3',
+                    aws_access_key_id=AWS_ACCESS_KEY_ID[0],
+                    aws_secret_access_key=AWS_SECRET_ACCESS_KEY[0],
+                    region_name='cn-northwest-1'
+                )
+            else:
+                aws_client = boto3.client(
+                    's3',
+                    aws_access_key_id=AWS_ACCESS_KEY_ID[1],
+                    aws_secret_access_key=AWS_SECRET_ACCESS_KEY[1],
+                    region_name='cn-northwest-1'
+                )
+            params = {'Key': obj_name, 'Bucket': 'ansjerfilemanager'}
+            media_url = aws_client.generate_presigned_url(
+                'get_object', Params=params, ExpiresIn=300)
+        elif storage_location == 5:
+            obj_name = f'roomumy/albumMedia/{uid}/{channel}/{event_time}.jpeg'
+            obs_client = ObsClient(
+                access_key_id=HUAWEICLOUD_AK, secret_access_key=HUAWEICLOUD_SK, server=HUAWEICLOUD_OBS_SERVER)
+            create_res = obs_client.createSignedUrl(
+                method='GET', bucketName="asj-app", objectKey=obj_name, expires=600)
+            media_url = create_res.signedUrl
+        else:
+            media_url = ''
         return media_url