Переглянути джерело

获取设备上传数据demo

peng 1 рік тому
батько
коміт
8f7daca2a1
1 змінених файлів з 32 додано та 2 видалено
  1. 32 2
      Controller/TestApi.py

+ 32 - 2
Controller/TestApi.py

@@ -172,6 +172,10 @@ class testView(View):
             return self.uploadAVSS(request, response)
         elif operation == 'oci_oss':  # 生成oci oss预签名链接
             return self.oci_oss(request, response)
+        elif operation == 'genericReportPush':  # 设备上传日志
+            return self.generic_report_push(request_dict, response)
+        elif operation == 'genericReportGet':  # 获取设备上传日志
+            return self.generic_report_get(request_dict, response)
         else:
             return response.json(414)
 
@@ -1180,7 +1184,7 @@ class testView(View):
                 config=botocore.client.Config(signature_version='s3v4'),
                 region_name=region_name,
                 endpoint_url='https://servers.compat.objectstorage.us-phoenix-1.oraclecloud.com'
-        )
+            )
             # 存储桶
             bucket = 'push'
             key = 'test.jpeg'
@@ -1188,7 +1192,7 @@ class testView(View):
             # pre_signed_url = s3_client.generate_file_obj_url(bucket, key, client_method, 24*3600)
             pre_signed_url = s3_client.generate_presigned_url(
                 ClientMethod=client_method,
-                ExpiresIn=7*24*3600,
+                ExpiresIn=7 * 24 * 3600,
                 Params={
                     'Bucket': bucket,
                     'Key': key
@@ -1197,3 +1201,29 @@ class testView(View):
             return response.json(0, pre_signed_url)
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
+    @staticmethod
+    def generic_report_push(request_dict, response):
+        try:
+            logging.info('设备上传数据:{}'.format(request_dict))
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
+    @staticmethod
+    def generic_report_get(request_dict, response):
+        uid = request_dict.get('uid', None)
+        event_type = request_dict.get('event_type', None)
+        if not all([uid, event_type]):
+            return response.json()
+        try:
+            serial_number = CommonService.query_serial_with_uid(uid)
+            msg = {
+                "reporttype": event_type
+            }
+            topic_name = 'ansjer/generic/{}/report/get'.format(serial_number)
+            result = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
+
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))