Эх сурвалжийг харах

fix:ota has been block by china

chenjunkai 6 жил өмнө
parent
commit
e14ee56a6e

+ 3 - 0
Ansjer/urls.py

@@ -118,6 +118,9 @@ urlpatterns = [
     url(r'^vodBucket/(?P<operation>.*)$', VodBucket.VodBucketView.as_view()),
     url(r'^UIDBucket/(?P<operation>.*)$', VodBucket.UidBucketView.as_view()),
     url(r'^EquipmentVersion/(?P<operation>.*)$', EquipmentOTA.EquipmentVersionView.as_view()),
+    # 新ota地址
+    url(r'^OTA/downloadsPack/(?P<fullPath>[0-9\w/.\-]+)', OTAEquipment.dlOTAInterface),
+
     url(r'^deviceShare/(?P<operation>.*)$', DeviceShare.DeviceShareView.as_view()),
     url(r'^appVer/views$', AppInfo.AppVersionView.as_view()),
 

+ 2 - 1
Controller/EquipmentOTA.py

@@ -195,7 +195,8 @@ class EquipmentVersionView(View):
             path = file_path.replace('static/Upgrade/', '').replace('\\', '/')
             url = SERVER_DOMAIN + 'OTA/downloads/' + path + '?time=' + str(time.time())
         elif file_path.find('static/otapack') != -1:
-            url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
+            # url = SERVER_DOMAIN + 'OTA/downloadsPack/' + file_path + '?time=' + str(time.time())
+            url = SERVER_DOMAIN + 'OTA/dl/' + file_path + '?time=' + str(time.time())
         else:
             return response.json(900, '2')
         res = {

+ 27 - 0
Controller/OTAEquipment.py

@@ -562,3 +562,30 @@ def downloadOTAInterface(request, fullPath, *callback_args, **callback_kwargs):
             return res.json(907)
     else:
         return res.json(444, 'fullPath')
+
+
+# 新ota包下载,上面的dvr被墙了
+@csrf_exempt
+def dlOTAInterface(request, fullPath, *callback_args, **callback_kwargs):
+    res = ResponseObject()
+    print('fullPath:')
+    print(fullPath)
+    if fullPath:
+        if os.path.isfile(fullPath):
+            try:
+                wrapper = FileWrapper(open(fullPath, 'rb'))
+                response = HttpResponse(wrapper, content_type="application/octet-stream")
+                response['Content-Length'] = os.path.getsize(fullPath)
+                response['Content-Disposition'] = 'attachment; filename=%s' % os.path.basename(fullPath)
+                response['Content-MD5'] = getMD5orSHA265(fullPath)
+                # 校验文件md5值
+                response['Content-SHA265'] = getMD5orSHA265(fullPath, 'SHA265')
+                response['Content-CRC32'] = getMD5orSHA265(fullPath, 'CRC32')
+                response['Content-Error'] = res.formal(0)
+                return response
+            except Exception as e:
+                return res.json(906, repr(e))
+        else:
+            return res.json(907)
+    else:
+        return res.json(444, 'fullPath')

+ 17 - 17
templates/testttt.py

@@ -22,27 +22,27 @@
 # udt = uuid.uuid1()
 # print(udt)
 # exit()
-import oss2
-
-# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
-auth = oss2.Auth('LTAIyMkGfEdogyL9', '71uIjpsqVOmF7DAITRyRuc259jHOjO')
-# Endpoint以杭州为例,其它Region请按实际情况填写。
-bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
-
-# 设置此签名URL在60秒内有效。
-# url = bucket.sign_url('PUT', 'wupengyangceshi.png', 60)
-url = bucket.sign_url('GET', 'ADD2JGTZG22XBL2S111A/9/1546545891.jpeg', 60)
-print(url)
-
-exit()
-
+# import oss2
+#
+# # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
+# auth = oss2.Auth('LTAIyMkGfEdogyL9', '71uIjpsqVOmF7DAITRyRuc259jHOjO')
+# # Endpoint以杭州为例,其它Region请按实际情况填写。
+# bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
+#
+# # 设置此签名URL在60秒内有效。
+# # url = bucket.sign_url('PUT', 'wupengyangceshi.png', 60)
+# url = bucket.sign_url('GET', 'ADD2JGTZG22XBL2S111A/9/1546545891.jpeg', 60)
+# print(url)
+#
+# exit()
+#
 import requests
 
 
-didir = 'D:/13.56.215.252/git/AnsjerFormal/templates/adf.jpg'
-url = 'http://apg.oss-cn-shenzhen.aliyuncs.com/ADD2JGTZG22XBL2S111A%2F3%2F1546545891.jpeg?Expires=1554801938&Signature=UlZ5pCeBwYlVm07gdL2gp2UOFuU%3D&OSSAccessKeyId=LTAIyMkGfEdogyL9'
+# didir = 'D:/13.56.215.252/git/AnsjerFormal/templates/adf.jpg'
+url = 'http://apg.oss-cn-shenzhen.aliyuncs.com/ADD2JGTZG22XBL2S111A%2F9%2F1546545891.jpeg?Signature=mLm0%2BrKpgRW5KGBmmmuLnCg4nPQ%3D&Expires=1555322681&OSSAccessKeyId=LTAIyMkGfEdogyL9'
 
-r = requests.put(url,data=open(didir,'rb'))
+r = requests.put(url,data='aadsf;llllllllllllllllllllllllllllllllllllllllllllljk')
 print(r.status_code)
 exit()
 import smtplib