chenjunkai 5 жил өмнө
parent
commit
f6f82035dc

+ 60 - 0
Ansjer/test/aws_debug.py

@@ -0,0 +1,60 @@
+#!/usr/bin/env python3  
+# -*- coding: utf-8 -*-  
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@AUTHOR: ASJRD018
+@NAME: AnsjerFormal
+@software: PyCharm
+@DATE: 2019/11/13 14:38
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: aws_debug.py
+@Contact: chanjunkai@163.com
+"""
+import boto3
+
+REGION_NAME = 'us-east-1'  # e.g
+import json
+
+
+def generate_sts_boto3():
+    sts = boto3.client(
+        'sts',
+        aws_access_key_id='AKIA2E67UIMD45Y3HL53',
+        aws_secret_access_key='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',
+        region_name=REGION_NAME
+    )
+
+    Policy = {"Version": "2012-10-17",
+              "Statement": [{"Effect": "Allow", "Action": "kinesisvideo:*", "Resource": ['*']}]}
+    credentials = sts.get_federation_token(
+        Name='chanjunkai@163.com',  # or any unique text related to user
+        Policy=json.dumps(Policy),
+        DurationSeconds=3600,
+    )
+
+    print(credentials)
+    access_key_id = credentials['Credentials']['AccessKeyId']
+    session_token = credentials['Credentials']['SessionToken']
+    secret_access_key = credentials['Credentials']['SecretAccessKey']
+    res = {
+        'access_key_id': access_key_id,
+        'secret_access_key': secret_access_key,
+        'session_token': session_token,
+    }
+    print(res)
+
+
+token_dict = {'access_key_id': 'ASIA2E67UIMDVTHGAEEV', 'secret_access_key': 'GncLAqpmcPS+4OjZt+xfg5hZrXDVYDH0jvaulunY',
+              'session_token': 'FwoGZXIvYXdzEBAaDKypPx1gg3gqmDdzfCK+AZ1Z/DS1ZK8jSzrOQnAeB70PnMBK+B7rVPXyiqIilx7gqCAg/xVne9X2bHAItg3b02dGkRrD57CWqHnAeLkpsLMXYxAZsZhgEXW11NmjIAQVc5ZiNyRI8LIvp8s8FrsLLm7zs57TdbPy6i9o1di1silEiwYRQc65iKMOfVH8cOg0iZA0mfDYksuxAmeAo5lQF6JX/7DujtJR/LNzqetv83F400I47vIStBbXtXkqp/qBVMfNIrN9wVA4fmLpvBEop8Gu7gUyKT34Cd4XhwvxdXt4bq8bKm3Bya553WMEsqh0xbG7WJLWP4+8GitU8YWb'}
+
+key = token_dict['access_key_id']
+secret = token_dict['secret_access_key']
+token = token_dict['session_token']
+
+boto3_session = boto3.Session(aws_access_key_id=key, aws_secret_access_key=secret, aws_session_token=token,
+                              region_name='us-east-1')
+
+kv_client = boto3_session.client('kinesisvideo')
+res = kv_client.describe_stream(StreamName='test_stream')
+print(res)

+ 3 - 46
Ansjer/test/kbt.py

@@ -1,47 +1,4 @@
-import boto3
+for i in range(int('3')):
+    print(i)
 
-REGION_NAME = 'us-east-1'  # e.g
-import json
-
-
-def generate_sts_boto3():
-    sts = boto3.client(
-        'sts',
-        aws_access_key_id='AKIA2E67UIMD45Y3HL53',
-        aws_secret_access_key='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',
-        region_name=REGION_NAME
-    )
-
-    Policy = {"Version": "2012-10-17",
-              "Statement": [{"Effect": "Allow", "Action": "kinesisvideo:*", "Resource": ['*']}]}
-    credentials = sts.get_federation_token(
-        Name='chanjunkai@163.com',  # or any unique text related to user
-        Policy=json.dumps(Policy),
-        DurationSeconds=3600,
-    )
-
-    print(credentials)
-    access_key_id = credentials['Credentials']['AccessKeyId']
-    session_token = credentials['Credentials']['SessionToken']
-    secret_access_key = credentials['Credentials']['SecretAccessKey']
-    res = {
-        'access_key_id': access_key_id,
-        'secret_access_key': secret_access_key,
-        'session_token': session_token,
-    }
-    print(res)
-
-
-token_dict = {'access_key_id': 'ASIA2E67UIMDVTHGAEEV', 'secret_access_key': 'GncLAqpmcPS+4OjZt+xfg5hZrXDVYDH0jvaulunY',
-              'session_token': 'FwoGZXIvYXdzEBAaDKypPx1gg3gqmDdzfCK+AZ1Z/DS1ZK8jSzrOQnAeB70PnMBK+B7rVPXyiqIilx7gqCAg/xVne9X2bHAItg3b02dGkRrD57CWqHnAeLkpsLMXYxAZsZhgEXW11NmjIAQVc5ZiNyRI8LIvp8s8FrsLLm7zs57TdbPy6i9o1di1silEiwYRQc65iKMOfVH8cOg0iZA0mfDYksuxAmeAo5lQF6JX/7DujtJR/LNzqetv83F400I47vIStBbXtXkqp/qBVMfNIrN9wVA4fmLpvBEop8Gu7gUyKT34Cd4XhwvxdXt4bq8bKm3Bya553WMEsqh0xbG7WJLWP4+8GitU8YWb'}
-
-key = token_dict['access_key_id']
-secret = token_dict['secret_access_key']
-token = token_dict['session_token']
-
-boto3_session = boto3.Session(aws_access_key_id=key, aws_secret_access_key=secret, aws_session_token=token,
-                              region_name='us-east-1')
-
-kv_client = boto3_session.client('kinesisvideo')
-res = kv_client.describe_stream(StreamName='test_stream')
-print(res)
+exit()

+ 20 - 13
Controller/DetectController.py

@@ -11,31 +11,32 @@
 @file: DetectController.py
 @Contact: chanjunkai@163.com
 """
-import time
 import os
+import time
+
 import apns2
 import jpush as jpush
 import oss2
 from django.http import JsonResponse
-from django.utils.decorators import method_decorator
-from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 from pyfcm import FCMNotification
 
 from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, DETECT_PUSH_DOMAIN, JPUSH_CONFIG, \
     FCM_CONFIG, APNS_CONFIG, BASE_DIR, APNS_MODE
 from Model.models import Device_Info, VodHlsModel, Equipment_Info, UidSetModel, UidPushModel
+from Object.ETkObject import ETkObject
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.UidTokenObject import UidTokenObject
 from Service.CommonService import CommonService
-from Object.ETkObject import ETkObject
+
 '''
 http://test.dvema.com/detect/changeStatus?push_type=2&token_val=1507bfd3f7ba3bbb551&appBundleId=com.ansjer.zccloud_ab&tz=+08.00&uid=T4AZ3CUKCERH9FZA111A&status=1&m_code=AN020000own000000unkn.zccloud_ab&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NzUxOTAxNjksInVzZXJJRCI6IjE1Njc3NTgyMTg2MTkxMzgwMDEzODAwMCIsImxhbmciOiJ0YyIsInVzZXIiOiIxMzExOTY1NzcxMyJ9.rQ11jA3IQPxQofFbZyG0nvLhGVcxOR82N2qQ8i04VuU&lang=tc&app_type=2
 http://test.push.dvema.com/notify/push?uidToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJUNEFaM0NVS0NFUkg5RlpBMTExQSJ9.GtrXeq5gb2Z9M3mKECxi9eNQbPxqC-6PtgJkOOg6PwI&n_time=1598456451&channel=1&event_type=1&is_st=1
 '''
 
+
 class DetectControllerView(View):
 
     def get(self, request, *args, **kwargs):
@@ -130,6 +131,13 @@ class DetectControllerView(View):
                     thumb2 = bucket.sign_url('GET', ts, 3600, params={'x-oss-process': 'video/snapshot,t_2000,w_700'})
                     # thumb3 = bucket.sign_url('GET', ts, 3600, params={'x-oss-process': 'video/snapshot,t_3000,w_700'})
                     p['img_list'] = [thumb0, thumb1, thumb2]
+            elif p['is_st'] == 3:
+                # 列表装载回放时间戳标记
+                p['img_list'] = []
+                for i in range(p['is_st']):
+                    img = img_bucket.sign_url('GET', '{uid}/{channel}/{time}_{st}.jpeg'.
+                                              format(uid=devUid, channel=p['Channel'], time=eventTime, st=i), 300)
+                    p['img_list'].append(img)
             if devUid in uid_type_dict.keys():
                 p['uid_type'] = uid_type_dict[devUid]['type']
                 p['devNickName'] = uid_type_dict[devUid]['NickName']
@@ -439,15 +447,14 @@ class NotificationView(View):
                 elif is_st == '3':
                     # 人形检测带动图
                     # Endpoint以杭州为例,其它Region请按实际情况填写。
-                    for i in range(int(is_st)-1):
-                        pass
-                    obj = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
-                    # 设置此签名URL在60秒内有效。
-                    url = bucket.sign_url('PUT', obj, 7200)
-                    res_data = {'code': 0, 'img_push': url, 'msg': 'success'}
-                    res_data = {
-
-                    }
+                    img_url_list = []
+                    for i in range(int(is_st)):
+                        obj = '{uid}/{channel}/{filename}_{st}.jpeg'. \
+                            format(uid=uid, channel=channel, filename=n_time, st=i)
+                        # 设置此签名URL在60秒内有效。
+                        url = bucket.sign_url('PUT', obj, 7200)
+                        img_url_list.append(url)
+                    res_data = {'code': 0, 'img_url_list': img_url_list, 'msg': 'success'}
                     return JsonResponse(status=200, data=res_data)
             else:
                 return JsonResponse(status=200, data={'code': 404, 'msg': 'data is not exist'})