Sfoglia il codice sorgente

Merge branch 'dev' of http://192.168.136.99:3000/SERVER/AnsjerServer into dev

tanghongbin 4 anni fa
parent
commit
96905c4a4e

+ 2 - 2
Controller/EquipmentManager.py

@@ -478,7 +478,7 @@ def addInterface(request):
                                                                     'isShare',
                                                                     'primaryUserID', 'primaryMaster', 'vodPrimaryUserID', 'vodPrimaryMaster', 'userID__userEmail',
                                                                     'data_joined', 'version',
-                                                                    'isVod', 'isExist', 'isCameraOpenCloud')
+                                                                    'isVod', 'isExist', 'isCameraOpenCloud', 'endpoint', 'token_iot_number')
                     dvql = CommonService.qs_to_list(dvqs)
                     ubqs = UID_Bucket.objects.filter(uid=UID). \
                         values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -814,7 +814,7 @@ def queryInterface(request):
         dvql = dvqs[(page - 1) * line:page * line].values('id', 'userID', 'NickName', 'UID', 'View_Account',
                                                           'View_Password', 'ChannelIndex', 'Type', 'isShare',
                                                           'primaryUserID', 'primaryMaster', 'data_joined', 'version', 'vodPrimaryUserID', 'vodPrimaryMaster', 'userID__userEmail',
-                                                          'isVod', 'isExist', 'NotificationMode', 'isCameraOpenCloud', 'endpoint')
+                                                          'isVod', 'isExist', 'NotificationMode', 'isCameraOpenCloud', 'endpoint', 'token_iot_number')
         dvls = CommonService.qs_to_list(dvql)
         uid_list = []
         for dvl in dvls:

+ 1 - 1
Controller/EquipmentManagerV2.py

@@ -220,7 +220,7 @@ class EquipmentManagerV2(View):
                            'View_Password', 'ChannelIndex', 'Type', 'isShare',
                            'primaryUserID', 'primaryMaster', 'data_joined', 'vodPrimaryUserID', 'vodPrimaryMaster',
                            'userID__userEmail',
-                           'version', 'isVod', 'isExist', 'NotificationMode', 'isCameraOpenCloud', 'endpoint')
+                           'version', 'isVod', 'isExist', 'NotificationMode', 'isCameraOpenCloud', 'endpoint', 'token_iot_number')
         dvls = CommonService.qs_to_list(dvql)
         uid_list = []
         for dvl in dvls:

+ 3 - 3
Controller/EquipmentManagerV3.py

@@ -196,7 +196,7 @@ class EquipmentManagerV3(View):
                                                                         'vodPrimaryUserID', 'vodPrimaryMaster',
                                                                         'userID__userEmail',
                                                                         'data_joined', 'version',
-                                                                        'isVod', 'isExist', 'isCameraOpenCloud')
+                                                                        'isVod', 'isExist', 'isCameraOpenCloud', 'endpoint', 'token_iot_number')
                         dvql = CommonService.qs_to_list(dvqs)
                         ubqs = UID_Bucket.objects.filter(uid=UID). \
                             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -307,7 +307,7 @@ class EquipmentManagerV3(View):
                                'primaryUserID', 'primaryMaster', 'data_joined', 'vodPrimaryUserID', 'vodPrimaryMaster',
                                'userID__userEmail',
                                'version', 'isVod', 'isExist', 'NotificationMode', 'isCameraOpenCloud',
-                               'endpoint')
+                               'endpoint', 'token_iot_number')
             dvls = CommonService.qs_to_list(dvql)
             uid_list = []
             for dvl in dvls:
@@ -486,7 +486,7 @@ class EquipmentManagerV3(View):
                                              'View_Password', 'ChannelIndex', 'Type', 'isShare',
                                              'primaryUserID', 'primaryMaster', 'data_joined', 'vodPrimaryUserID',
                                              'vodPrimaryMaster', 'userID__userEmail',
-                                             'version', 'isVod', 'isExist', 'NotificationMode', 'isCameraOpenCloud')
+                                             'version', 'isVod', 'isExist', 'NotificationMode', 'isCameraOpenCloud', 'endpoint', 'token_iot_number')
 
                 dvls = CommonService.qs_to_list(device_qs)
                 uid_list = []

+ 5 - 1
Controller/IotCoreController.py

@@ -1,7 +1,9 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
+import hashlib
 import json
 import time
+import uuid
 
 import boto3
 from django.views import View
@@ -122,7 +124,9 @@ class IotCoreView(View):
                     else:
                         iotClient = AmericaIOTClient()
                     res = iotClient.create_keys_and_certificate(uid)
-                    Device_Info.objects.filter(UID=uid).update(endpoint=res[0]['endpoint'])
+                    nowTime = int(time.time())
+                    token_iot_number = hashlib.md5((str(uuid.uuid1()) + str(nowTime)).encode('utf-8')).hexdigest()
+                    Device_Info.objects.filter(UID=uid).update(endpoint=res[0]['endpoint'], token_iot_number=token_iot_number )
                     iotdeviceInfoModel.objects.create(uid=uid, certificateId=res[0]['certificateId'],
                                                       certificatePem=res[0]['certificatePem'],
                                                       publicKey=res[0]['publicKey'],

+ 52 - 37
Controller/TestApi.py

@@ -21,6 +21,7 @@ import json
 import math
 import time
 import urllib
+import datetime
 from Object.AliPayObject import AliPayObject
 import logging
 import boto3
@@ -29,6 +30,9 @@ from botocore.exceptions import ClientError
 import oss2
 import paypalrestsdk
 import logging
+import requests
+import hashlib
+import hmac
 from aliyunsdkcore import client
 from aliyunsdksts.request.v20150401 import AssumeRoleRequest
 from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
@@ -36,10 +40,9 @@ from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 from django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块
-
 from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_ARN, SERVER_DOMAIN, PAYPAL_CRD, \
     SERVER_DOMAIN_SSL
-from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel
+from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.UidTokenObject import UidTokenObject
@@ -50,6 +53,7 @@ from Model.models import Device_User, Device_Info, UID_Bucket, UID_Preview, UidS
 
 
 
+
 SERVER_DOMAIN = 'http://test.dvema.com/'
 ACCESS_KEY = "AKIA2E67UIMD3CYTIWPA"
 SECRET_KEY = "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"
@@ -99,15 +103,12 @@ class testView(View):
         elif operation == 'generateToken':
             userID = '158943604783713800138000'
             return self.generate_token(request_dict,userID)
-        elif operation == 'generateUidToken':
-            userID = '158943604783713800138000'
-            return self.generate_uid_token(request_dict,userID)
         elif operation == 'test_upload_s3':
             userID = '158943604783713800138000'
             return self.test_upload_s3(request_dict)
-        elif operation == 'test_upload_s3_amazon_comprehend':
+        elif operation == 'test_request':
             userID = '158943604783713800138000'
-            return self.test_upload_s3_amazon_comprehend(request_dict)
+            return self.testRequest(request,request_dict)
         else:
             return 123
 
@@ -125,7 +126,7 @@ class testView(View):
         s3_client = session.client('s3')
 
         #上传
-        s3_client.put_object(Bucket="azvod1", Key="file/rule.txt", Body=open(r"E:\download\Shadowsocks-4.1.10.0\user-rule.txt", 'rb').read())
+        # s3_client.put_object(Bucket="azvod1", Key="file/rule.txt", Body=open(r"E:\download\Shadowsocks-4.1.10.0\user-rule.txt", 'rb').read())
 
         #下载
         resp = s3_client.get_object(Bucket="azvod1", Key="file/rule.txt")
@@ -299,10 +300,10 @@ class testView(View):
     def do_test_get_sign_sts(self, request_dict, ip, response):
         # uid = 'GZL2PEFJPLY7W6BG111A'
         # channel = 2
-        uid = 'M1BYBPCHNS92PBLG111A'
+        uid = 'VVDHCVBYDKFMJRWA111A'
         channel = 1
         now_time = int(time.time())
-        ubqs = UID_Bucket.objects.filter(uid=uid, channel=channel). \
+        ubqs = UID_Bucket.objects.filter(uid=uid, channel=channel, endTime__gte=now_time). \
             values("bucket__mold", "bucket__bucket", "bucket__endpoint", "bucket__region", "endTime")
         if ubqs.exists():
             if ubqs[0]["bucket__mold"] == 0:
@@ -410,7 +411,7 @@ class testView(View):
                     ]
                 }
                 response = boto3_sts.get_federation_token(
-                    Name='{role_name}'.format(role_name=uid + '_' + str(channel)),
+                    Name='{role_name}'.format(role_name=uid + '_' + channel),
                     Policy=json.dumps(Policy),
                     DurationSeconds=7200
                 )
@@ -443,7 +444,7 @@ class testView(View):
     def do_get_sign_sts(self, request_dict, ip, response):
         # uid = 'GZL2PEFJPLY7W6BG111A'
         # channel = 2
-        uid = 'VVDHCVBYDKFMJRWA111A'
+        uid = '86YC8Z192VB1VMKU111A'
         channel = 1
         now_time = int(time.time())
         ubqs = UID_Bucket.objects.filter(uid=uid, channel=channel, endTime__gte=now_time). \
@@ -687,42 +688,56 @@ class testView(View):
         return response.json(0, vod_play_list)
 
     def generate_token(self,request_dict,userID):
-        #UserIdToken
+        # UserIdToken
         tko = TokenObject()
         res = tko.generate(
-            data={'userID': 160868920610913800138000, 'lang': 'cn', 'user': '13923452707', 'm_code': '123413243214'})
-
+            data={'userID': 158943594633713800138000, 'lang': 'cn', 'user': '597471180@qq.com', 'm_code': '123413243214'})
         #uidToken
         # utko = UidTokenObject()
-        # res = utko.generate(data={'uid': 'H2CMKET2LDC3ZBL4111A','channel': 1})
+        # res = utko.generate(data={'uid': 'XKWZSC5FCJYT19B7111A','channel': 1})
         return JsonResponse(status=200, data=res,safe=False)
 
-    def generate_uid_token(self, request_dict, userID):
-        # UserIdToken
-        # tko = TokenObject()
-        # res = tko.generate(
-        #     data={'userID': 158943594633713800138000, 'lang': 'cn', 'user': '597471180@qq.com',
-        #           'm_code': '123413243214'})
-
-        utko = UidTokenObject()
-        rr = utko.generate(data={'uid':'M1BYBPCHNS92PBLG111A','channel':1})
-        return JsonResponse(status=200, data=rr, safe=False)
-
 
     def test_upload_s3(self,request_dict):
-        aws_key = "ASIA2E67UIMDTJFRF7UE" #【你的 aws_access_key】
-        aws_secret = "5u6MDvm3Fabdbc6EG9+JPJE3x07peNkrvok76Dqq" # 【你的 aws_secret_key】
-        aws_session_token = "FwoGZXIvYXdzEHQaDKQchZxanXOpNJ2UriLoARUmKF/Uf6HZMhB4Bdo1Df4BlirgpqOyXmMULjx1yvqah1+BKIV2rzEoxxaVmvjcvLjHMQamPR7QzLZYP/WgJ6biPTnfqJWy5rCVpIZtD3D2nmGWAf5RSedADILJgBQmrXumFX2jrnm6THbqfdyfT2eitKt5ZD82zvLOaHMWu7mzomzmye8Eimt28Dhj6jsLeZPxOhhHBLUi+gddHAMCQq8HmGbnsXN5OrOBvqreRAxdR/u6vuQHbVpV3b8V5nkAtTVhOCaGRcPETARB8F/jFuFRhW9tAjPZisP/SEa8vUDR32FoMNQeda4o5+7l/gUyKYlem5bIB96gywY6s4C8c1PAa3l09+5tdGNp5laAJf7vMUzMJckR2EgF"
+        testd = hmac.new('AWS4rf/xnQ3jIgY8bj7Sz4An4KbYct2sq2MbrfmP8rVV'.encode("utf-8"), '20210223'.encode("utf-8"), hashlib.sha256).digest()
+        region_sign = hmac.new(testd, 'cn-northwest-1'.encode("utf-8"), hashlib.sha256).hexdigest()
+        exit(region_sign)
+        kService = sign(kRegion, 's3')
+        kSigning = sign(kService, 'aws4_request')
+
+        # exit(CommonService.getIpIpInfo("120.197.196.156",'CN'))
+        aws_key = "ASIA2MMWBR4DUPTFDTOJ" #【你的 aws_access_key】
+        aws_secret = "tTFZ9wpxFadeufhfaJ1erErv4U1bJ+TS/SJwTptx" #【你的 aws_access_key】
+        aws_session_token = "IQoJb3JpZ2luX2VjEJT//////////wEaDmNuLW5vcnRod2VzdC0xIkYwRAIgenLaMN6NdFji0x18OuaUTPvvtRBAWwjdEYdBTCMh0ywCIEzntAbgRPmwS+YFuNg+F31z60I4J1IoqmrQHR7wmPzVKtsCCML//////////wEQABoMNzEzODE2MTE2OTk5IgyJTmdtNJ319TtNORAqrwLPG6Px0z5CsEQpFt/TCbSSMRtYqBU+x5Ll9hZIuTvg8H+56H02/cr0nSCNiy05z7dSrSWMFoMhVKvHq7as5TRvVXkvMbbYPQuQxxPFr7EswaB+XITeDpdGBI6N7mqnt6h4YJbhk2dNRa2/4Ypr1DuyGnhVV6NxNHA5INtY7apLi3UTcNKwKSQRVzUWZBpoj86wG3j77KOZg18I9P8UWBpA9fpz/Wiv4xrzZSexrUnq5svTLEqMfTYCPBXkxrJBjNrwVjvkBkgeIfQZPz+A5X97p7wXbPf0Jo5aHHRDefbAmBuXYoSfpHjiFWindkcvCaMxQzUiHVLvnN/5SvgQEzN3pLUAAioepRZIZQLaky1aRmYYm1wOCjzgsg9V+GV6gKTE+ipFG/6Nv03Vh++Hv+YwyamJgQY6mgEmxhOhncek0PgQeExx2EXk73olY/6L15eDyHbSWoEKBMTmdlmpYD9Cj3qP4aUUW6UT6V5Tql/s5eBEsYwY+hzgtQiTmd7vjytXxae+dpN9VsWGW4AJ9P+/LgBe6zExUx2MOVst0+hb+dd8bg/qkz7UBYNQAmU+BEoL2Cd7lNXdrv56Gboapo+BosQO49GT8u1k5EheQ9JKHCqv"
         session = Session(aws_access_key_id=aws_key,
                           aws_secret_access_key=aws_secret,
                           aws_session_token=aws_session_token,
-                          region_name="ap-southeast-1") # 此处根据自己的 s3 地区位置改变
+                          region_name="cn-northwest-1") # 此处根据自己的 s3 地区位置改变
         s3 = session.resource("s3")
-        client = session.client("s3")
-        bucket = "asj-oct-ipc" # 【你 bucket 的名字】 # 首先需要保.证 s3 上已经存在该存储桶,否则报错
-        upload_data = open("./././static/log/error.log", "rb")
-        upload_key = "86YC8Z192VB1VMKU111A/vod1/test"
+        # client = session.client("s3")
+        bucket = "7cdk" # 【你 bucket 的名字】 # 首先需要保.证 s3 上已经存在该存储桶,否则报错
+        upload_data = open("./././static/log/test.log", "rb")
+        upload_key = "XKWZSC5FCJYT19B7111A/test/test6/test.log"
         file_obj = s3.Bucket(bucket).put_object(Key=upload_key, Body=upload_data)
-        print('--------')
+        print('---------------------')
         print(file_obj)
-        return JsonResponse(status=200, data=file_obj, safe=False)
+        print(8/0)
+        exit()
+
+
+    def testRequest(self,request,request_dict):
+        ip = CommonService.get_ip_address(request)
+        ipInfo = CommonService.getIpIpInfo(ip,"CN")
+        # print(type(ipInfo))
+        # exit(ipInfo)
+        addr = CommonService.getAddr(ip)
+        dicts = {
+            'ipInfo':ipInfo,
+            'addr':addr,
+        }
+        return HttpResponse(json.dumps(dicts, ensure_ascii=False),
+                            content_type="application/json,charset=utf-8")
+
+
+
+

+ 1 - 0
Model/models.py

@@ -258,6 +258,7 @@ class Device_Info(models.Model):
     isExist = models.SmallIntegerField(blank=True, default=1, verbose_name='是否被删除')  # 是否被删除了(需主用户交互) 1存在,0不存在,2设备被重置
     isCameraOpenCloud =  models.SmallIntegerField(blank=True, default=1, verbose_name='是否开启云存')  # 0:不开启  1:开启
     endpoint = models.CharField(blank=True, max_length=256, default='', verbose_name=u'iot端点')
+    token_iot_number = models.CharField(blank=True, default='', max_length=50, verbose_name='连接iot令牌')
     ###
     REQUIRED_FIELDS = []