|
@@ -321,25 +321,20 @@ class IcloudServiceView(View):
|
|
|
@return: response
|
|
|
"""
|
|
|
LOGGER.info('删除云盘记录')
|
|
|
- time_stamp = request_dict.get('time_stamp', None)
|
|
|
- file_type = request_dict.get('file_type', None)
|
|
|
- uid = request_dict.get('uid', None)
|
|
|
- channel = request_dict.get('channel', None)
|
|
|
- if not all([time_stamp, uid, channel]):
|
|
|
- return response.json(444, {'error param': 'time_stamp,channel,uid'})
|
|
|
+ record_ids = request_dict.get('record_ids', None)
|
|
|
+ if not all([record_ids]):
|
|
|
+ return response.json(444, {'error param': 'record_id'})
|
|
|
+ record_id_list = record_ids.split(',')
|
|
|
# 查询是否开通云盘
|
|
|
use_details_qs = IcloudUseDetails.objects.filter(user_id=user_id).values('use_size', 'bucket_id')
|
|
|
if not use_details_qs.exists():
|
|
|
return response.json(173)
|
|
|
use_size = float(use_details_qs[0]['use_size'])
|
|
|
bucket_id = use_details_qs[0]['bucket_id']
|
|
|
- icloud_record_qs = IcloudStorageRecord.objects.filter(user_id=user_id, uid=uid, channel=channel,
|
|
|
- time_stamp=time_stamp,
|
|
|
- bucket_id=bucket_id, file_type=file_type)
|
|
|
+ icloud_record_qs = IcloudStorageRecord.objects.filter(user_id=user_id, id__in=record_id_list)
|
|
|
if not icloud_record_qs.exists():
|
|
|
return response.json(173)
|
|
|
- record_qs = icloud_record_qs.values('size')
|
|
|
- size = float(record_qs[0]['size'])
|
|
|
+ record_qs = icloud_record_qs.values('size', 'uid', 'channel', 'time_stamp', 'file_type')
|
|
|
bucket_qs = VodBucketModel.objects.filter(id=bucket_id).values('bucket', 'region', 'mold')
|
|
|
if not bucket_qs.exists():
|
|
|
return response.json(173)
|
|
@@ -352,27 +347,33 @@ class IcloudServiceView(View):
|
|
|
AWS_SECRET_ACCESS_KEY[mold],
|
|
|
bucket_region
|
|
|
)
|
|
|
- new_size = round(use_size - size, 2)
|
|
|
- new_size = new_size if new_size > 0 else 0
|
|
|
- if file_type == '0': # 图片
|
|
|
- key_name = '{user_id}/image_file/{uid}/channel{channel}/{time}'.format(user_id=user_id, uid=uid,
|
|
|
- channel=channel,
|
|
|
- time=time_stamp)
|
|
|
- elif file_type == '1': # ts文件
|
|
|
- key_name = '{user_id}/ts_file/{uid}/channel{channel}/{time}'.format(user_id=user_id, uid=uid,
|
|
|
- channel=channel,
|
|
|
- time=time_stamp)
|
|
|
- elif file_type == '2': # mp4文件
|
|
|
- key_name = '{user_id}/mp4_file/{uid}/channel{channel}/{time}'.format(user_id=user_id, uid=uid,
|
|
|
- channel=channel,
|
|
|
- time=time_stamp)
|
|
|
- else:
|
|
|
- return response.json(444, {'error param': 'file_type'})
|
|
|
- object_list = s3_obj.get_object_list(bucket_name, key_name)
|
|
|
- for item in object_list:
|
|
|
- s3_obj.delete_obj(bucket_name, item['Key'])
|
|
|
+ for item in record_qs:
|
|
|
+ size = float(item['size'])
|
|
|
+ uid = item['uid']
|
|
|
+ channel = item['channel']
|
|
|
+ time_stamp = item['time_stamp']
|
|
|
+ file_type = item['file_type']
|
|
|
+ use_size = round(use_size - size, 2)
|
|
|
+ if file_type == 0: # 图片
|
|
|
+ key_name = '{user_id}/image_file/{uid}/channel{channel}/{time}'.format(user_id=user_id, uid=uid,
|
|
|
+ channel=channel,
|
|
|
+ time=time_stamp)
|
|
|
+ elif file_type == 1: # ts文件
|
|
|
+ key_name = '{user_id}/ts_file/{uid}/channel{channel}/{time}'.format(user_id=user_id, uid=uid,
|
|
|
+ channel=channel,
|
|
|
+ time=time_stamp)
|
|
|
+ elif file_type == 2: # mp4文件
|
|
|
+ key_name = '{user_id}/mp4_file/{uid}/channel{channel}/{time}'.format(user_id=user_id, uid=uid,
|
|
|
+ channel=channel,
|
|
|
+ time=time_stamp)
|
|
|
+ else:
|
|
|
+ return response.json(444, {'error param': 'file_type'})
|
|
|
+ object_list = s3_obj.get_object_list(bucket_name, key_name)
|
|
|
+ for obj in object_list:
|
|
|
+ s3_obj.delete_obj(bucket_name, obj['Key'])
|
|
|
+ use_size = use_size if use_size > 0 else 0
|
|
|
icloud_record_qs.delete()
|
|
|
- use_details_qs.update(use_size=new_size)
|
|
|
+ use_details_qs.update(use_size=use_size)
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
LOGGER.info('删除云盘记录异常:{}'.format(repr(e)))
|