Browse Source

新增日志上传路径

chenshibin 4 năm trước cách đây
mục cha
commit
d54ea9240e
1 tập tin đã thay đổi với 60 bổ sung8 xóa
  1. 60 8
      Controller/PcInfo.py

+ 60 - 8
Controller/PcInfo.py

@@ -11,7 +11,7 @@ from django.http import HttpResponse
 
 from django.views.generic.base import View
 
-from Model.models import Pc_Info
+from Model.models import Pc_Info, PctestlogModel
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -48,6 +48,8 @@ class PcInfo(View):
                 return self.query(request_dict, response)
             elif operation == 's3addandupload':
                 return self.s3addandupload(request_dict, response, request)
+            elif operation == 's3addanduploadlog': #上传日志文件
+                return self.s3addanduploadlog(request_dict, response, request)
             elif operation == 's3download':
                 return self.s3download(request_dict, response)
             elif operation == 's3delete':
@@ -215,7 +217,6 @@ class PcInfo(View):
         explain = request_dict.get('explain', '')
         is_update = request_dict.get('is_update', None)
         is_open = request_dict.get('is_open', None)
-        filetype  =  request_dict.get('filetype', None)
         # logger.info('文件名字:')
         # logger.info(file_name)
         param_flag = CommonService.get_param_flag(
@@ -240,12 +241,6 @@ class PcInfo(View):
                 download_link = '{pc_name}/{pc_version}_{bundle_version}_{pc_test}_{file_name}'.format(
                     pc_name=pc_name, pc_version=pc_version, bundle_version=bundle_version,
                     pc_test=pc_test, file_name=file_name)
-
-                if filetype:
-                    download_link = '{pc_name}/{filetype}/{pc_version}_{bundle_version}_{pc_test}_{file_name}'.format(
-                        pc_name=pc_name, filetype=filetype, pc_version=pc_version, bundle_version=bundle_version,
-                        pc_test=pc_test, file_name=file_name)
-
                 response_url = aws_s3_guonei.generate_presigned_url(
                     ClientMethod='put_object',
                     Params={
@@ -301,6 +296,63 @@ class PcInfo(View):
                 else:
                     return response.json(500)
 
+    def s3addanduploadlog(self, request_dict, response, request):
+        logger = logging.getLogger('info')
+        logger.info('s3方式上传参数:')
+        logger.info(request_dict)
+        token = request_dict.get('token', None)
+        tko = TokenObject(token)
+        response.lang = tko.lang
+        if tko.code != 0:
+            return response.json(tko.code)
+        userID = tko.userID
+        if not userID:
+            return response.json(104)
+        pc_name = request_dict.get('pc_name', None)
+        bundle_version = request_dict.get('bundle_version', None)
+        pc_version = request_dict.get('pc_version', None)
+        pc_test = request_dict.get('pc_test', None)
+        lang = request_dict.get('lang', None)
+        file_name = request_dict.get('file_name', None)
+        file_type = request_dict.get('file_type', None)
+        package = request_dict.get('package', None)
+        explain = request_dict.get('explain', '')
+        is_update = request_dict.get('is_update', None)
+        is_open = request_dict.get('is_open', None)
+        pathtype = request_dict.get('pathtype', None)
+        # logger.info('文件名字:')
+        # logger.info(file_name)
+        param_flag = CommonService.get_param_flag(
+            data=[pc_name, bundle_version, pc_version, pc_test, lang, file_name, file_type, package, is_update,
+                  is_open])
+        if param_flag is not True:
+            return response.json(444)
+
+        logger.info('开始上传')
+        # 把安装包上传到s3
+        aws_s3_guonei = boto3.client(
+            's3',
+            aws_access_key_id=AWS_ACCESS_KEY_ID[0],
+            aws_secret_access_key=AWS_SECRET_ACCESS_KEY[0],
+            config=botocore.client.Config(signature_version='s3v4'),
+            region_name='cn-northwest-1'
+        )
+        download_link = '{pc_name}/{pathtype}/{pc_version}_{bundle_version}_{pc_test}_{file_name}'.format(
+            pc_name=pc_name, pathtype=pathtype, pc_version=pc_version, bundle_version=bundle_version,
+            pc_test=pc_test, file_name=file_name)
+        response_url = aws_s3_guonei.generate_presigned_url(
+            ClientMethod='put_object',
+            Params={
+                'Bucket': 'pc-package',
+                'Key': download_link
+            },
+            ExpiresIn=3600
+        )
+        add_time = time.time()
+        PctestlogModel.objects.create(user_id=userID, content=download_link, addtime=add_time)
+        return response.json(0, {'upload_url': response_url})
+
+
     def s3download(self, request_dict, response):
         pc_name = request_dict.get('pc_name', None)
         bundle_version = request_dict.get('bundle_version', None)