|
@@ -68,15 +68,15 @@ class IcloudServiceView(View):
|
|
|
if not use_details_qs.exists():
|
|
|
return response.json(173)
|
|
|
use_details_id = use_details_qs[0]['id']
|
|
|
- bucket_id = use_details_qs[0]['bucket_id']
|
|
|
+ target_bucket_id = use_details_qs[0]['bucket_id']
|
|
|
use_size = use_details_qs[0]['use_size']
|
|
|
now_time = int(time.time())
|
|
|
nickname = device_qs[0]['NickName']
|
|
|
# 判断云盘是否还有容量
|
|
|
all_size = IcloudService.objects.filter(Q(use_details_id=use_details_id), Q(use_status=0),
|
|
|
Q(end_time__gt=now_time) | Q(end_time=0)).values(
|
|
|
- 'size').aggregate(total_size=Sum('count'))['total_size']
|
|
|
- all_size = all_size if all_size else 0
|
|
|
+ 'size').aggregate(total_size=Sum('size'))['total_size']
|
|
|
+ all_size = all_size * 1024 if all_size else 0
|
|
|
if use_size > all_size:
|
|
|
return response.json(910)
|
|
|
split_vod_hls_obj = SplitVodHlsObject()
|
|
@@ -85,12 +85,12 @@ class IcloudServiceView(View):
|
|
|
if not vod_hls.exists():
|
|
|
return response.json(173)
|
|
|
source_bucket_id = vod_hls[0]['bucket_id']
|
|
|
- fg = vod_hls[0]['fg']
|
|
|
+ fg = int(vod_hls[0]['fg'])
|
|
|
sec = vod_hls[0]['sec']
|
|
|
- bucket_qs = VodBucketModel.objects.filter(id=bucket_id).values('bucket')
|
|
|
- if not bucket_qs.exists():
|
|
|
+ target_bucket_qs = VodBucketModel.objects.filter(id=target_bucket_id).values('bucket')
|
|
|
+ if not target_bucket_qs.exists():
|
|
|
return response.json(173)
|
|
|
- to_bucket_name = bucket_qs[0]['bucket']
|
|
|
+ target_bucket_name = target_bucket_qs[0]['bucket']
|
|
|
|
|
|
source_bucket_qs = VodBucketModel.objects.filter(id=source_bucket_id).values('bucket', 'region', 'mold')
|
|
|
if not source_bucket_qs.exists():
|
|
@@ -113,17 +113,18 @@ class IcloudServiceView(View):
|
|
|
ts_file = '{uid}/vod{channel}/{time}/ts{i}.ts'.format(uid=uid, channel=channel, time=start_time,
|
|
|
i=i)
|
|
|
ts_list.append(ts_file)
|
|
|
- ts_size += s3_obj.get_object_size(source_bucket_name, ts_file)
|
|
|
- temp_size = ts_size + use_size
|
|
|
+ ts_size += s3_obj.get_object_size(source_bucket_name, ts_file) # 获取存储对象字节,单位B
|
|
|
+ ts_size = ts_size/1024/1024
|
|
|
+ temp_size = round(ts_size + use_size, 2)
|
|
|
if temp_size > all_size:
|
|
|
return response.json(910)
|
|
|
- for item in ts_list:
|
|
|
- key_name = '{user_id}/ts_file/'.format(user_id=user_id) + item
|
|
|
- s3_obj.copy_single_obj(source_bucket_name, item, to_bucket_name, key_name)
|
|
|
+ for source_key in ts_list:
|
|
|
+ target_key = '{user_id}/ts_file/'.format(user_id=user_id) + source_key
|
|
|
+ s3_obj.copy_single_obj(source_bucket_name, source_key, target_bucket_name, target_key)
|
|
|
IcloudStorageRecord.objects.create(user_id=user_id, uid=uid, channel=channel, time_stamp=start_time,
|
|
|
nickname=nickname,
|
|
|
- sec=sec, bucket_id=bucket_id, fg=fg, size=ts_size, store_type=1)
|
|
|
- use_details_qs.update(size=temp_size)
|
|
|
+ sec=sec, bucket_id=target_bucket_id, fg=fg, size=ts_size, store_type=1)
|
|
|
+ use_details_qs.update(use_size=temp_size)
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
print(e)
|