瀏覽代碼

新增云存服务接口

locky 4 年之前
父節點
當前提交
650e52a758
共有 3 個文件被更改,包括 121 次插入18 次删除
  1. 96 0
      AdminController/ServeManagementController.py
  2. 20 15
      AdminController/TestServeController.py
  3. 5 3
      Ansjer/urls.py

+ 96 - 0
AdminController/ServeManagementController.py

@@ -0,0 +1,96 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+import json
+import time
+import urllib
+import uuid
+import boto3
+import threading
+import logging
+from boto3.session import Session
+from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
+from django.views.generic.base import View
+from Model.models import Device_Info, Role, MenuModel, VodBucketModel
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Object.UidTokenObject import UidTokenObject
+from Service.CommonService import CommonService
+from django.db.models import Q, F
+from time import strftime
+
+
+class serveManagement(View):
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, request, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, request, operation)
+
+    def validation(self, request_dict, request, operation):
+        language = request_dict.get('language', 'en')
+        response = ResponseObject(language, 'pc')
+        if operation == '??':
+            return 0
+        else:
+            tko = TokenObject(
+                request.META.get('HTTP_AUTHORIZATION'),
+                returntpye='pc')
+            if tko.code != 0:
+                return response.json(tko.code)
+            response.lang = tko.lang
+            userID = tko.userID
+            if operation == 'getVodBucketList':
+                return self.getVodBucketList(userID, request_dict, response)
+            elif operation == 'addOrEditVodBucket':
+                return self.addOrEditVodBucket(userID, request_dict, response)
+            else:
+                return response.json(404)
+
+    def getVodBucketList(self, userID, request_dict, response):
+        # 获取存储桶列表
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+
+        page = int(pageNo)
+        line = int(pageSize)
+        try:
+            vod_bucket_qs = VodBucketModel.objects.filter().all()
+            count = vod_bucket_qs.count()
+            vod_buckets = vod_bucket_qs[(page - 1) * line:page * line]
+            vod_bucket_list = []
+            for vod_bucket in vod_buckets:
+                vod_bucket_list.append({
+                    'bucket': vod_bucket.bucket,
+                    'storeDay': vod_bucket.storeDay,
+                    'content': vod_bucket.content,
+                    'endpoint': vod_bucket.endpoint,
+                    'area': vod_bucket.area,
+                    'region': vod_bucket.region,
+                    'is_free': vod_bucket.is_free,
+                    'mold': vod_bucket.mold,
+                    'region_id': vod_bucket.region_id,
+                    'addTime': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(vod_bucket.addTime)),
+                    'updTime': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(vod_bucket.updTime)),
+                })
+            print('vod_bucket_list: ', vod_bucket_list)
+            return response.json(
+                0, {'list': vod_bucket_list, 'total': count})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def addOrEditVodBucket(self, userID, request_dict, response):
+        # 添加/编辑存储桶
+        print('request_dict: ', request_dict)
+        try:
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))

+ 20 - 15
AdminController/TestServeController.py

@@ -56,21 +56,26 @@ class TestServeView(View):
 
     def AItest(self, userID, request, request_dict, response):
         file = request.FILES.get('file', None)
-        print('request_dict: ', request_dict)
+        if not file:
+            return response.json(444)
         maxLabels = int(request_dict.get('maxLabels', 5))
         minConfidence = float(request_dict.get('minConfidence', 55))
 
-        client = boto3.client(
-            'rekognition',
-            aws_access_key_id='AKIA2E67UIMD6JD6TN3J',
-            aws_secret_access_key='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',
-            region_name='us-east-1')
-        # doc:
-        # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rekognition.html#Rekognition.Client.detect_labels
-        rekognition_res = client.detect_labels(
-            Image={
-                'Bytes': file.read()},
-            MaxLabels=maxLabels,
-            MinConfidence=minConfidence)
-        print('rekognition_res: ', rekognition_res)
-        return response.json(0, {'rekognition_res': rekognition_res})
+        try:
+            client = boto3.client(
+                'rekognition',
+                aws_access_key_id='AKIA2E67UIMD6JD6TN3J',
+                aws_secret_access_key='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',
+                region_name='us-east-1')
+            # doc:
+            # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rekognition.html#Rekognition.Client.detect_labels
+            rekognition_res = client.detect_labels(
+                Image={
+                    'Bytes': file.read()},
+                MaxLabels=maxLabels,
+                MinConfidence=minConfidence)
+            print('rekognition_res: ', rekognition_res)
+            return response.json(0, {'rekognition_res': rekognition_res})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))

+ 5 - 3
Ansjer/urls.py

@@ -19,7 +19,8 @@ from Controller import FeedBack, EquipmentOTA, EquipmentInfo, AdminManage, AppIn
     OrderTaskController, HistoryUIDController, UIDManageUserController, SerialNumberController, CompanyController, \
     RegionController, VPGController, LanguageController, TestController, DeviceConfirmRegion, S3GetStsController, \
     DetectControllerV2, ShadowController, TestDetectController, PcInfo, PctestController, DeviceDebug
-from AdminController import UserManageController, RoleController, MenuController, TestServeController
+from AdminController import UserManageController, RoleController, MenuController, TestServeController, \
+    ServeManagementController
 
 urlpatterns = [
     url(r'^testApi/(?P<operation>.*)$', TestApi.testView.as_view()),
@@ -344,9 +345,10 @@ urlpatterns = [
     #角色管理
     re_path('roleManagement/(?P<operation>.*)', RoleController.RoleView.as_view()),
 
-    #菜单管理
+    # 菜单管理
     re_path('menuManagement/(?P<operation>.*)', MenuController.MenuView.as_view()),
-
+    # 服务管理
+    re_path('serveManagement/(?P<operation>.*)', ServeManagementController.serveManagement.as_view()),
     # 测试服务
     re_path('testServe/(?P<operation>.*)', TestServeController.TestServeView.as_view()),