|
@@ -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)
|