|
@@ -1,13 +1,14 @@
|
|
|
#!/usr/bin/env python3
|
|
|
# -*- coding: utf-8 -*-
|
|
|
-
|
|
|
-
|
|
|
+import boto3
|
|
|
+import botocore
|
|
|
import requests
|
|
|
from django.views.generic.base import View
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
|
from Service.CommonService import CommonService
|
|
|
from Model.models import Device_Info, RequestRecordModel, iotdeviceInfoModel, Access_Log, DeviceLogModel
|
|
|
+from Ansjer.config import REGION_NAME, ACCESS_KEY_ID, SECRET_ACCESS_KEY, LOG_BUCKET
|
|
|
|
|
|
|
|
|
class LogManagementView(View):
|
|
@@ -257,6 +258,27 @@ class LogManagementView(View):
|
|
|
device_log_qs = DeviceLogModel.objects.filter().order_by(
|
|
|
'-add_time').values()[(page - 1) * line:page * line]
|
|
|
device_log_list = CommonService.qs_to_list(device_log_qs)
|
|
|
+
|
|
|
+ # 添加下载链接
|
|
|
+ aws_s3_client = boto3.client(
|
|
|
+ 's3',
|
|
|
+ region_name=REGION_NAME,
|
|
|
+ aws_access_key_id=ACCESS_KEY_ID,
|
|
|
+ aws_secret_access_key=SECRET_ACCESS_KEY,
|
|
|
+ config=botocore.client.Config(signature_version='s3v4'),
|
|
|
+ )
|
|
|
+ for device_log in device_log_list:
|
|
|
+ obj = device_log['serial_number'] if device_log['serial_number'] else device_log['uid']
|
|
|
+ obj = 'device_log/' + obj + '/{}'.format(device_log['filename'])
|
|
|
+ download_url = aws_s3_client.generate_presigned_url(
|
|
|
+ ClientMethod='get_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': LOG_BUCKET,
|
|
|
+ 'Key': obj
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ device_log['download_url'] = download_url
|
|
|
return response.json(0, {'list': device_log_list, 'total': total})
|
|
|
except Exception as e:
|
|
|
print(e)
|