Browse Source

is_st_upload

chenjunkai 5 years ago
parent
commit
f6f82035dc
3 changed files with 83 additions and 59 deletions
  1. 60 0
      Ansjer/test/aws_debug.py
  2. 3 46
      Ansjer/test/kbt.py
  3. 20 13
      Controller/DetectController.py

+ 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
 @file: DetectController.py
 @Contact: chanjunkai@163.com
 @Contact: chanjunkai@163.com
 """
 """
-import time
 import os
 import os
+import time
+
 import apns2
 import apns2
 import jpush as jpush
 import jpush as jpush
 import oss2
 import oss2
 from django.http import JsonResponse
 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 django.views.generic.base import View
 from pyfcm import FCMNotification
 from pyfcm import FCMNotification
 
 
 from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, DETECT_PUSH_DOMAIN, JPUSH_CONFIG, \
 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
     FCM_CONFIG, APNS_CONFIG, BASE_DIR, APNS_MODE
 from Model.models import Device_Info, VodHlsModel, Equipment_Info, UidSetModel, UidPushModel
 from Model.models import Device_Info, VodHlsModel, Equipment_Info, UidSetModel, UidPushModel
+from Object.ETkObject import ETkObject
 from Object.RedisObject import RedisObject
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Object.UidTokenObject import UidTokenObject
 from Object.UidTokenObject import UidTokenObject
 from Service.CommonService import CommonService
 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.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
 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):
 class DetectControllerView(View):
 
 
     def get(self, request, *args, **kwargs):
     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'})
                     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'})
                     # thumb3 = bucket.sign_url('GET', ts, 3600, params={'x-oss-process': 'video/snapshot,t_3000,w_700'})
                     p['img_list'] = [thumb0, thumb1, thumb2]
                     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():
             if devUid in uid_type_dict.keys():
                 p['uid_type'] = uid_type_dict[devUid]['type']
                 p['uid_type'] = uid_type_dict[devUid]['type']
                 p['devNickName'] = uid_type_dict[devUid]['NickName']
                 p['devNickName'] = uid_type_dict[devUid]['NickName']
@@ -439,15 +447,14 @@ class NotificationView(View):
                 elif is_st == '3':
                 elif is_st == '3':
                     # 人形检测带动图
                     # 人形检测带动图
                     # Endpoint以杭州为例,其它Region请按实际情况填写。
                     # 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)
                     return JsonResponse(status=200, data=res_data)
             else:
             else:
                 return JsonResponse(status=200, data={'code': 404, 'msg': 'data is not exist'})
                 return JsonResponse(status=200, data={'code': 404, 'msg': 'data is not exist'})