|
@@ -6,6 +6,7 @@ import traceback
|
|
|
import os
|
|
|
from urllib import request, parse
|
|
|
import requests
|
|
|
+from boto3 import Session
|
|
|
from django.http import HttpResponse
|
|
|
|
|
|
from django.views.generic.base import View
|
|
@@ -208,7 +209,7 @@ class PcInfo(View):
|
|
|
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.FILES.get('file_name', 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', '')
|
|
@@ -217,7 +218,7 @@ class PcInfo(View):
|
|
|
# logger.info('文件名字:')
|
|
|
# logger.info(file_name)
|
|
|
param_flag = CommonService.get_param_flag(
|
|
|
- data=[pc_name, bundle_version, pc_version, pc_test, lang, file_type, package, is_update, is_open])
|
|
|
+ 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)
|
|
|
else:
|
|
@@ -235,9 +236,9 @@ class PcInfo(View):
|
|
|
config=botocore.client.Config(signature_version='s3v4'),
|
|
|
region_name='cn-northwest-1'
|
|
|
)
|
|
|
- download_link = '{pc_name}/{pc_version}_{bundle_version}_{pc_test}'.format(
|
|
|
+ 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)
|
|
|
+ pc_test=pc_test, file_name=file_name)
|
|
|
response_url = aws_s3_guonei.generate_presigned_url(
|
|
|
ClientMethod='put_object',
|
|
|
Params={
|
|
@@ -369,15 +370,24 @@ class PcInfo(View):
|
|
|
try:
|
|
|
# 删除s3和数据库里的相应数据
|
|
|
file_path = file[0].download_link
|
|
|
- print(file_path)
|
|
|
- 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'
|
|
|
- )
|
|
|
- aws_s3_guonei.delete_object(Bucket='pc-package', Key=file_path)
|
|
|
+ session = Session(aws_access_key_id=AWS_ACCESS_KEY_ID[0],
|
|
|
+ aws_secret_access_key=AWS_SECRET_ACCESS_KEY[0],
|
|
|
+ region_name='cn-northwest-1')
|
|
|
+ s3 = session.resource('s3')
|
|
|
+ bucket = s3.Bucket('pc-package')
|
|
|
+ obj_list = []
|
|
|
+ # 获取存储桶的所有对象,判断对象是否上传成功
|
|
|
+ for obj in bucket.objects.all():
|
|
|
+ obj_list.append(obj.key)
|
|
|
+ if file_path in obj_list:
|
|
|
+ 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'
|
|
|
+ )
|
|
|
+ aws_s3_guonei.delete_object(Bucket='pc-package', Key=file_path)
|
|
|
file.delete()
|
|
|
except Exception as e:
|
|
|
return response.json(176, repr(e))
|