chenjunkai 6 years ago
parent
commit
a296622adb
3 changed files with 44 additions and 9 deletions
  1. 1 1
      Ansjer/test/osssigput.py
  2. 42 7
      Controller/CloudVod.py
  3. 1 1
      templates/hlsvod.html

+ 1 - 1
Ansjer/test/osssigput.py

@@ -22,7 +22,7 @@ import oss2
 import base64
 
 
-tokenss = {"bucket_name": "cloudvod1", "arn": "acs:ram::1901342792446414:role/stsoss/5ZBU8UD6RHMZJ5JW111A", "AccessKeySecret": "6nM385rNpH1wxd76c3Kq2ye2m1FVrHEWkhu2Qe7JaQfP", "Expiration": "2018-12-11T02:21:02Z", "code": 0, "expire": "3600", "AccessKeyId": "STS.NJ8y9DZ4vEpGUkoVc1szyu73X", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "ip": "120.237.157.184", "storage": "5ZBU8UD6RHMZJ5JW111A/vod2/", "SecurityToken": "CAISyQJ1q6Ft5B2yfSjIr4mNMoPwt+tX8rKsV03esmNkf/VVmvKYujz2IHFIf3NhAe0bv/kzm2lX7/YYlr0uebV4FXHoM/FQy6Z1rCGeOtOYkpQ/GhG0Gdn3d1KIAjvXgeUjCoeQFaEmE5XAQlTAkTAJkNmeXD6+XlujHISUgJp8FLo+VRW5ajw0TbUzIRB5+vcHKVzbN/umLnyShXHLXmZlvgdghER166m03re7iHzkgUb91/UeqqnoP5GgdLMMBppkVMqv1+EELciY2SVLuR9R7/U03u4W8jPAo92DBFUIpEi0GdeEz/ExFi9cVIpnOZEd9aHV0uN/traU1aaPkkcVZLoJCXuOHtz8npedRNnEbIhpKezJXF3Wyc2KO5XPtAcpXGkWLgsieaB6eyMrU010F2yLd/P4oQ+TMl25JbOZy6YtyorTRMhtOBpSTBqAAXdgEJUchXuUdb0mOpUMiacAha7yLBGu1L/FBUJ82PpMiJSPvSQFP2ThMCK8oNiBAPsTf9i7eLFlB++JHWuJ0LwXPFiFpi6+M+hRL6sMTqzl0KN5WI5qQcuGuK6V08Bi4d/hE9znjRtqx1uECjDYg8I88xWMWLwjjZQuCjVM7cI8"}
+tokenss = {"bucket_name": "cloudvod1", "arn": "acs:ram::1901342792446414:role/stsoss/5ZBU8UD6RHMZJ5JW111A", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "AccessKeyId": "STS.NHCAdgRJxXRDvaDL4VAcYjA7c", "ip": "120.237.157.184", "AccessKeySecret": "ESy53e6b15AnH8XDujGjpxVx5TUXgH8zNhrXdsY3aENL", "storage": "5ZBU8UD6RHMZJ5JW111A/vod2/", "code": 0, "SecurityToken": "CAIS9wJ1q6Ft5B2yfSjIr4v2Ct7Tv5VZ75CvdEf1qDQDTex1hYScgTz2IHFIf3NhAe0bv/kzm2lX7/YYlr0uebV4FXHoM/FQy6Z1rCGeOtOYkpQXEQqzGdn3d1KIAjvXgeV9CoeQFaF0E5XAQlTAkTAJkNmeXD6+XlujHISUgJp8FLo+VRW5ajw0TbUzIRB5+vcHKVzbN/umLnyShXHLXmZlvgdghER166m03re7iHzkgUb91/UeqqnoP5GgdLMMBppkVMqv1+EELciY2SVLuR9R7/U03u4W8jPAo92DBFUIpEi0GdeEz/ExFi9cVIpnOZEd9aHV0uN/traU1f6zqXdsJchZXz7SX5vapMLPA7GSMcsjfrvaIwa0sLfWbMGz6Vh7JytGa0UTK4YDUiYhUUV3FmuFe/X7pA6WO1uZJvLbgP1s4/1c1E71+NeGHV+LToiC3DwQUp1GNBJ0bERHhTG8I/JaLFUTKgM9HdiOUZ50dwtODyh1OMgSjkYagAGfVUONq88xLWe/Sx9AoL/zVbTnZudpYaNPnossXbNGQ52xmtcLclxEnRoTi5WLrqt/KSxtw9fG1HU3XlPFfUDNoteqkgYZV5uHUjxQq9b9Ov0SnbPecRbqCTb1y55KdtxKDVNOcH+62xeHOCA2Ni/yljEtUez9BPMtz1pqRAzHLw==", "Expiration": "2018-12-11T06:32:30Z", "expire": "3600"}
 # 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
 
 # 使用临时token中的认证信息初始化StsAuth实例。

+ 42 - 7
Controller/CloudVod.py

@@ -40,6 +40,24 @@ http://192.168.136.40:8077/cloudVod/getSts?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJI
 # 获取存储的播放文件列表
 #修改状态
 http://192.168.136.40:8077/cloudVod/status?token=local&did=138001380001543918745881545&channel=4&status=1
+# 回调vod
+http://192.168.136.40:8077/cloudVod/storeplaylist?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJGVFNMTDhITTQzN1ozOFdVMTExQSIsImNoYW5uZWwiOiI0In0.HO-PzoRwhQ4CFNkjthqOitf48c-XOvHjtNGCeUmBe9g&time=1234567891
+=============================
+# 生成订单
+http://test.dvema.com/cloudVod/createOrder?token=test&did=138001380001544514277661990&channel=4&rank=1
+# 修改设备云存状态
+http://test.dvema.com/cloudVod/status?did=138001380001544514277661990&channel=4&token=test&status=1
+
+# 获取指定设备云存关联信息
+http://test.dvema.com/cloudVod/details?token=test&did=138001380001540342559510534
+
+# 获取回放列表
+http://test.dvema.com/cloudVod/getHlsList?did=138001380001544514277661990&channel=4&token=test&daytime=2018121001
+
+
+2设备端
+http://test.dvema.com/cloudVod/getSts?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjaGFubmVsIjoiNCIsInVpZCI6IkZUU0xMOEhNNDM3WjM4V1UxMTFBIn0.wkrwYvIYf5qEukOSTxALSAgSqop-gNBdEvSwScOgYB8
+
 '''
 
 
@@ -71,7 +89,7 @@ class CloudVodView(View):
         elif operation == 'payExecute':
             return self.do_paypal_execute(request_dict, response)
         elif operation == 'storeplaylist':
-            return self.do_store_palylist(request_dict,response)
+            return self.do_store_palylist(request_dict, response)
         else:
             token = request_dict.get('token', None)
             # 设备主键uid
@@ -116,7 +134,8 @@ class CloudVodView(View):
         smqs = Store_Meal.objects.filter(id=rank).values("currency", "price")
         currency = smqs[0]['currency']
         price = smqs[0]['price']
-        call_sub_url = "{SERVER_DOMAIN}cloudVod/payExecute?orderID={orderID}".format(SERVER_DOMAIN=SERVER_DOMAIN,orderID=orderID)
+        call_sub_url = "{SERVER_DOMAIN}cloudVod/payExecute?orderID={orderID}".format(SERVER_DOMAIN=SERVER_DOMAIN,
+                                                                                     orderID=orderID)
         # call_sub_url = "http://192.168.136.40:8077/cloudVod/payExecute?orderID={orderID}".format(
         #     SERVER_DOMAIN=SERVER_DOMAIN, orderID=orderID)
         call_clc_url = "http://192.168.136.40:8077/cloudVod/order/cancle"
@@ -333,7 +352,7 @@ class CloudVodView(View):
         # 新增模式
         else:
             end_time = datetime.timedelta(days=add_days) + datetime.datetime.now()
-            Device_Meal.objects.create(rank_id=rank_id, uid=UID, channel=channel, status=1, end_time=end_time)
+            Device_Meal.objects.create(rank_id=rank_id, uid=UID, channel=channel, status=0, end_time=end_time)
             return response.json(0)
 
     def do_change_status(self, request_dict, userID, response):
@@ -353,11 +372,13 @@ class CloudVodView(View):
         dmqs.update(update_time=now_time, status=status)
         utko = UidTokenObject()
         utko.generate(data={'uid': UID, 'channel': channel})
-        return response.json(0,utko.token)
+        uidTkUrl = "{SERVER_DOMAIN}cloudVod/getSts?uidToken={uidToken}".format(uidToken=utko.token,
+                                                                               SERVER_DOMAIN=SERVER_DOMAIN)
+        return response.json(0, uidTkUrl)
 
-    def do_store_palylist(self,request_dict,response):
+    def do_store_palylist(self, request_dict, response):
         uidToken = request_dict.get('uidToken', None)
-        time = request_dict.get('time',None)
+        time = request_dict.get('time', None)
         utko = UidTokenObject(uidToken)
         if utko.flag is False:
             return response.json(444, 'uidToken')
@@ -369,5 +390,19 @@ class CloudVodView(View):
         if not qs.exists():
             return response.json(10, '设备未购买')
         time = int(time)
-        VodHlsModel.objects.create(uid=UID,channel=channel,time=time)
+        VodHlsModel.objects.create(uid=UID, channel=channel, time=time)
+        return response.json(0)
+
+    def do_get_playlist(self, request_dict, userID, response):
+        stime = request_dict.get('stime', None)
+        etime = request_dict.get('etime', None)
+        did = request_dict.get('did', None)
+        channel = request_dict.get('channel', None)
+        dvqs = Device_Info.objects.filter(id=did, userID_id=userID).values("UID")
+        if not dvqs.exists():
+            return response.json(10, '无设备')
+        UID = dvqs[0]["UID"]
+        qs = Device_Meal.objects.filter(uid=UID, channel=channel, status=1).values("rank", "channel")
+        if not qs.exists():
+            return response.json(10, '设备未购买')
         return response.json(0)

+ 1 - 1
templates/hlsvod.html

@@ -10,7 +10,7 @@
 <!-- <script src="https://cdn.jsdelivr.net/npm/hls.js@canary"></script> -->
 <video id="video"></video>
 <script>
-    var url = 'http://cloudvod1.oss-cn-shenzhen.aliyuncs.com/FTSLL8HM437Z38WU111A/vod4/2018121001/1543902118/1543902118.m3u8?x-oss-process=hls%2Fsign&OSSAccessKeyId=LTAIyMkGfEdogyL9&Expires=1544434635&Signature=6ljV3ySn6ufRhwaLnvaSp9t5oXg%3D'
+    var url = 'http://cloudvod1.oss-cn-shenzhen.aliyuncs.com/FTSLL8HM437Z38WU111A/vod4/2018121001/1543902118/1543902118.m3u8?x-oss-process=hls%2Fsign&Expires=1544522491&Signature=K8GqjUMS7YJP5vuWR2Z2mqFltrs%3D&OSSAccessKeyId=LTAIyMkGfEdogyL9'
     var video = document.getElementById('video');
     if (Hls.isSupported()) {
         var hls = new Hls();