Pārlūkot izejas kodu

获取语音上传路径添加type请求参数

tanghongbin 4 gadi atpakaļ
vecāks
revīzija
73999350d2
1 mainītis faili ar 23 papildinājumiem un 1 dzēšanām
  1. 23 1
      Controller/VoicePromptController.py

+ 23 - 1
Controller/VoicePromptController.py

@@ -46,6 +46,8 @@ class VoicePromptView(View):
             return self.do_query(request_dict, response)
         elif operation == 'update':
             return self.do_update(token.userID, request_dict, response)
+        elif operation == 'adminGetUploadUrl':
+            return self.admin_get_upload_url(token.userID, request_dict, response)
         elif operation == 'adminAdd':
             return self.do_admin_add(token.userID, request_dict, response)
         elif operation == 'adminQuery':
@@ -61,9 +63,10 @@ class VoicePromptView(View):
         upload_type = request_dict.get('upload_type', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
+        type = request_dict.get('type', None)
 
         if upload_type and uid and channel:
-            count = VoicePromptModel.objects.filter(uid=uid, channel=channel).count()
+            count = VoicePromptModel.objects.filter(uid=uid, channel=channel, type=type).count()
             if count >= 3:
                 return response.json(201)
 
@@ -226,6 +229,25 @@ class VoicePromptView(View):
         else:
             return response.json(444)
 
+    def admin_get_upload_url(self, userID, request_dict, response):
+        own_perm = ModelService.check_perm(userID, 10)
+        if not own_perm:
+            return response.json(404)
+
+        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 = 'voice_prompt/system/' + 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: