Jelajahi Sumber

设备类型功能添加获取上传路径的接口

tanghongbin 4 tahun lalu
induk
melakukan
4ae9986432
1 mengubah file dengan 20 tambahan dan 3 penghapusan
  1. 20 3
      Controller/DeviceTypeController.py

+ 20 - 3
Controller/DeviceTypeController.py

@@ -9,6 +9,7 @@ from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
 from Model.models import DeviceTypeModel
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
+from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 
 
@@ -41,13 +42,29 @@ class DeviceTypeView(View):
             return self.do_query(request_dict, response)
         elif operation == 'delete':
             return self.do_admin_delete(token.userID, request_dict, response)
+        elif operation == 'get_upload_url':
+            return self.get_upload_url(request_dict, response)
         else:
             return response.json(404)
 
+    def get_upload_url(self, request_dict, response):
+        upload_type = request_dict.get('upload_type', None)
+
+        if upload_type:
+            auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+            bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'ansjer-static-resources')
+            name = CommonService.createOrderID()
+            filename = str(name) + '.' + upload_type
+            obj = 'device_type/' + filename
+            url = bucket.sign_url('PUT', obj, 7200)
+            return response.json(0, {'put_url': url, 'filename': filename})
+        else:
+            return response.json(444)
+
     def do_admin_add(self, userID, request_dict, response):
-        # own_perm = ModelService.check_perm(userID, 10)
-        # if not own_perm:
-        #     return response.json(404)
+        own_perm = ModelService.check_perm(userID, 10)
+        if not own_perm:
+            return response.json(404)
 
         name = request_dict.get('name', None)
         model = request_dict.get('model', None)