chenjunkai преди 6 години
родител
ревизия
bfe5a9be51
променени са 2 файла, в които са добавени 28 реда и са изтрити 2 реда
  1. 1 0
      Ansjer/urls.py
  2. 27 2
      Controller/EquipmentStatus.py

+ 1 - 0
Ansjer/urls.py

@@ -146,6 +146,7 @@ urlpatterns = [
 
     url(r'^deviceShadow/update', EquipmentManager.update_device_shadow),
 
+    url(r'^log/getUploadUrl', EquipmentStatus.getUploadLogUrl),
     # 分区分流
     path('Test', Test.Test.as_view()),
     # 路由加参数参考

+ 27 - 2
Controller/EquipmentStatus.py

@@ -11,14 +11,16 @@
 @file: EquipmentStat.py
 @Contact: chanjunkai@163.com
 """
-from var_dump import var_dump
 import base64
 import urllib.parse
-
+import time
+import oss2
 from django.http import JsonResponse
 from django.views.decorators.csrf import csrf_exempt
 
+from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
 from Model.models import Device_Info
+from Object.ETkObject import ETkObject
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
 
@@ -125,3 +127,26 @@ def getTZ(request):
             return JsonResponse(status=200, data={'code': 404, 'msg': '令牌错误'})
     else:
         return JsonResponse(status=200, data={'code': 444, 'msg': '接口参数错误 etk'})
+
+
+# 设备日志上传
+def getUploadLogUrl(request):
+    request.encoding = 'utf-8'
+    if request.method == 'GET':
+        request_dict = request.GET
+    elif request.method == 'POST':
+        request_dict = request.POST
+    else:
+        return JsonResponse(status=200, data={'code': 403, 'msg': 'wrong post method!'})
+    etk = request_dict.get('etk', None)
+    eto = ETkObject(etk)
+    uid = eto.uid
+    if len(uid) == 20:
+        auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+        bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
+        nowTime = int(time.time())
+        obj = 'log/' + str(nowTime) + '.log'
+        url = bucket.sign_url('PUT', obj, 7200)
+        return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'url': url})
+    else:
+        return JsonResponse(status=200, data={'code': 404, 'msg': 'wrong etk'})