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

优化aliyunsdksts包导入

locky 2 жил өмнө
parent
commit
95ad6a2828

+ 0 - 85
Ansjer/test/coposs_sts.py

@@ -1,85 +0,0 @@
-# -*- coding: utf-8 -*-
-'''
-生成sts上传授权
-'''
-'''
-
-
-
-
-tar -cvpzf ubuntu_backup@`date +%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/tmp --exclude=/boot --exclude=/home --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/run --exclude=/home/sda1 / --warning=no-file-change
-
-'''
-from aliyunsdkcore import client
-from aliyunsdksts.request.v20150401 import AssumeRoleRequest
-import json
-import oss2
-
-# Endpoint以杭州为例,其它Region请按实际情况填写。
-endpoint = 'oss-cn-shenzhen.aliyuncs.com'
-# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
-access_key_id = 'LTAIyMkGfEdogyL9'
-access_key_secret = '71uIjpsqVOmF7DAITRyRuc259jHOjO'
-bucket_name = 'cloudvod1'
-# role_arn是角色的资源名称。
-role_arn = 'acs:ram::1901342792446414:role/stsoss'
-
-clt = client.AcsClient(access_key_id, access_key_secret, 'cn-shenzhen')
-req = AssumeRoleRequest.AssumeRoleRequest()
-
-# 设置返回值格式为JSON。
-req.set_accept_format('json')
-req.set_RoleArn(role_arn)
-req.set_RoleSessionName('test')
-req.set_DurationSeconds(3600)
-policys = {
-    "Version": "1",
-    "Statement": [
-        {
-            "Action": [
-                "oss:PutObject",
-                "oss:DeleteObject",
-            ],
-            "Resource": ["acs:oss:*:*:cloudvod1/*"],
-            "Effect": "Allow",
-            "Condition": {
-                "IpAddress": {
-                    "acs:SourceIp": "120.237.157.184"
-                }
-            }
-        }
-    ]
-}
-req.set_Policy(Policy=json.dumps(policys))
-body = clt.do_action(req)
-# body = clt.do_action_with_exception(req)
-# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
-token = json.loads(body)
-print(token)
-# exit()
-# tokens = {
-#     "Credentials":{
-#     'AccessKeySecret': 'eDwALgKkfZp6eXD2jz8ckktfduneNCjEz8NgHxcZsVe',
-#     'AccessKeyId': 'STS.NJNUa1UjHgo5idVKqY9wBLB3e',
-#     'Expiration': '2018-11-15T09:06:30Z',
-#     'SecurityToken': 'CAISwgJ1q6Ft5B2yfSjIr4n7HtuFuLVp0K3ea0Lnr3EMNfhuo4eYhzz2IHxLf3RuAe8dvvw+nGBV7vsdlqN4S5ZDR1HCbsJxtkXiZd84J9ivgde8yJBZom/MewHKeeKSvqL7Z+H+U6mSGJOEYEzFkSle2KbzcS7YMXWuLZyOj+wADLEQRRLqVSdaI91UKwB+0pN4U0HcLvGwKBXnr3PNBU5zwGpGhHh49L60z7/siGTXh0aozfQO9cajYMq4YtJwJot6S5D3pqgUF4vZ+SJc8RVR790ShadfqwzAo8uWDnhJkWzkVLOOqps1d1A/P/VlXfcU8NqEzKUi5raIyN+tkE0WZboOCh6yHt7wnJH2f8qyLcs8eLrBPHDA78uCLJGdsXl/PS1AaV0SJIFxci4oWUF0F27ASqqu6FnGZwalW1srcmfDSBocGoABBPrYt/W5rkesL4dOVkQTaYz14WpwbEQfMBi+8/T5xLEqUP4tuwsiiBbsQhfAm3QLKzGODGJB9bCcfxpQPSnZuAyCI4uSUZiuCFUzdKX/eaiurRDLMnACYx3aEzfmDCvQ6dYbbHxIdk+0UNMWk51eWKXfWnoH+udI6rkks2AWjTM='
-#   }
-# }
-# 使用临时token中的认证信息初始化StsAuth实例。
-auth = oss2.StsAuth(token['Credentials']['AccessKeyId'],
-                    token['Credentials']['AccessKeySecret'],
-                    token['Credentials']['SecurityToken'])
-print(auth)
-# 使用StsAuth实例初始化存储空间。
-bucket = oss2.Bucket(auth, endpoint, bucket_name)
-# 上传一个字符串。
-# res = bucket.put_object('oss_media_hls.ts', b'hello world')
-res = bucket.put_object('object-name.txt', b'hello world')
-print(res)
-
-
-'''
-# master 172.17.0.4
-
-slave 172.17.0.8
-'''

+ 0 - 65
Ansjer/test/oss_sts.py

@@ -1,65 +0,0 @@
-from aliyunsdkcore import client
-from aliyunsdksts.request.v20150401 import AssumeRoleRequest
-import json
-import oss2
-
-
-# Endpoint以杭州为例,其它egion请按实际情况填写。
-endpoint = 'oss-cn-shenzhen.aliyuncs.com'
-access_key_id = 'LTAIyMkGfEdogyL9'
-access_key_secret = '71uIjpsqVOmF7DAITRyRuc259jHOjO'
-bucket_name = 'cnvod1'
-# role_arn是角色的资源名称。
-role_arn = 'acs:ram::1901342792446414:role/stsoss'
-
-clt = client.AcsClient(access_key_id, access_key_secret, 'cn-shenzhen')
-req = AssumeRoleRequest.AssumeRoleRequest()
-
-# 设置返回值格式为JSON。
-req.set_accept_format('json')
-req.set_RoleArn(role_arn)
-req.set_RoleSessionName('uid13241234123')
-req.set_DurationSeconds(3600)
-policys = {
-    "Version": "1",
-    "Statement": [
-        {
-            "Action": [
-                "oss:PutObject",
-                "oss:DeleteObject",
-            ],
-            # "Resource": ["acs:oss:*:*:cloudvod1/*"],
-            "Resource": ["acs:oss:*:*:cloudvod1/test/*"],
-            "Effect": "Allow",
-            "Condition": {
-                "IpAddress": {
-                    "acs:SourceIp": "120.237.157.184"
-                }
-            }
-        }
-    ]
-}
-req.set_Policy(Policy=json.dumps(policys))
-body = clt.do_action(req)
-# body = clt.do_action_with_exception(req)
-# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
-token = json.loads(body)
-print(token)
-exit()
-
-# 使用临时token中的认证信息初始化StsAuth实例。
-auth = oss2.StsAuth(token['Credentials']['AccessKeyId'],
-                    token['Credentials']['AccessKeySecret'],
-                    token['Credentials']['SecurityToken'])
-print(auth)
-# 使用StsAuth实例初始化存储空间。
-bucket = oss2.Bucket(auth, endpoint, bucket_name)
-# 上传一个字符串。
-# res = bucket.put_object('oss_media_hls.ts', b'hello world')
-# res = bucket.put_object('test/test-name.txt', b'hello world')
-# print(res)
-# oss append obj
-result = bucket.append_object('mio', 0, 'content of first append')
-print(result)
-# 如果不是首次上传,可以通过bucket.head_object方法或上次追加返回值的next_position属性,得到追加位置。
-# bucket.append_object('<yourObjectName>', result.next_position, 'content of second append')

+ 0 - 44
Ansjer/test/osssigput.py

@@ -1,44 +0,0 @@
-#!/usr/bin/env python3  
-# -*- coding: utf-8 -*-  
-"""
-@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
-@AUTHOR: ASJRD018
-@NAME: AnsjerFormal
-@software: PyCharm
-@DATE: 2018/11/8 9:23
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: oss_sts.py
-@Contact: chanjunkai@163.com
-"""
-# -*- coding: utf-8 -*-
-'''
-生成sts上传授权
-'''
-from aliyunsdkcore import client
-from aliyunsdksts.request.v20150401 import AssumeRoleRequest
-import json
-import oss2
-import base64
-
-'''
-http://test.dvema.com/cloudVod/getSts?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjaGFubmVsIjoiNCIsInVpZCI6IkZUU0xMOEhNNDM3WjM4V1UxMTFBIn0.wkrwYvIYf5qEukOSTxALSAgSqop-gNBdEvSwScOgYB8
-'''
-endpoint = 'oss-cn-shenzhen.aliyuncs.com'
-bucket_name = 'cnvod1'
-
-tokenss ={
-    'AccessKeySecret': '7kWzxVezTBs5Qd3AArRAcuXiYaQoLYVUnLb14iuv5LWW',
-    'AccessKeyId': 'STS.NU3npZw8fkd7sSeFFrehxRmud',
-    'Expiration': '2019-12-16T04:40:40Z',
-    'SecurityToken': 'CAIS3AJ1q6Ft5B2yfSjIr5aGJcrumudH3KbccXXUokYnaedUvajehjz2IHFIf3NhAe0bv/kzm2lX7/YYlqduSpMcHhaYNJErss0NqltYtGpBI4nng4YfgbiJREJJYnyShb0WCoeUZdfZfejXOjKgvyRvwLz8WCy/Vli+S/OggoJmadJlF2vdaiFdVu9LOixoqsIRKRmpMu22YDLnhmfMAW1iuAd3lRkti8KFz9ab9wDVgXDj1+YRvP6RGJW/aNR2N5oNJbXB1edtJK3ay3wSuVoY/6NxkaBa/jue+c2QGEUWoW/CUYv16vRjIBV0fbNAf6dPt6rHkuBiseHyj/aOqXEUZ7kTCX+AAtn9n42dSL+LTo9oLe+gZy6Sg4rTasep6l8eDChFZF8QSb0IMWRtDBEgcDbeJ5K89UrCCgXZEPnZi/tniccongi0ooPVfgjVWduCzT0fIYQsyci1stvWBQcagAFYkAuSbf8lQF1U2ifn3hKAD3S5+CVRyluQoYJBnel5o1MsL6gzccGXwBC0Jpuux/tzOZBETh0DqA+BrfYsPEUdHyZ9O5wVAHym8gx9TYiZNYNkd9FXev1k5i9pOMoy+DzaF90gZBiiZv9AYhlw8k8WGo+0InLNdI8F4CcjA1oYBQ=='
-  }
-# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
-
-# 使用临时token中的认证信息初始化StsAuth实例。
-auth = oss2.StsAuth(tokenss['AccessKeyId'],
-                    tokenss['AccessKeySecret'],
-                    tokenss['SecurityToken'])
-bucket = oss2.Bucket(auth, endpoint, bucket_name)
-result = bucket.append_object('mio', 0, 'content of first append')
-print(result)

+ 12 - 63
Controller/CDKController.py

@@ -1,51 +1,17 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
-@AUTHOR: ASJRD018
-@NAME: AnsjerFormal
-@software: PyCharm
-@DATE: 2018/12/5 9:30
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: cloudstorage.py
-@Contact: chanjunkai@163.com
-"""
-import json
+import hashlib
 import logging
 import logging
 import time
 import time
-import urllib
 import uuid
 import uuid
-import hashlib
 
 
-import boto3
-import oss2
-import paypalrestsdk
-import threading
-from aliyunsdkcore import client
-from aliyunsdksts.request.v20150401 import AssumeRoleRequest
-from boto3.session import Session
-from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
+from django.db.models import F
+from django.http import StreamingHttpResponse
 from django.views.generic.base import View
 from django.views.generic.base import View
 
 
-from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_ARN, SERVER_DOMAIN, PAYPAL_CRD, \
-    SERVER_DOMAIN_SSL
-from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel, \
-    ExperienceContextModel, CDKcontextModel
-from Object.AliPayObject import AliPayObject
+from Model.models import CDKcontextModel
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
-from Object.UidTokenObject import UidTokenObject
-from Service.CommonService import CommonService
-from Object.m3u8generate import PlaylistGenerator
-from Object.WechatPayObject import WechatPayObject
-from django.db.models import Q, F
-from django.http import StreamingHttpResponse
 
 
-SERVER_DOMAIN = 'http://test.dvema.com/'
 
 
-
-# 设备信息添加
 class CDKView(View):
 class CDKView(View):
 
 
     def get(self, request, *args, **kwargs):
     def get(self, request, *args, **kwargs):
@@ -65,7 +31,6 @@ class CDKView(View):
             return response.json(444, 'error path')
             return response.json(444, 'error path')
         else:
         else:
             token = request_dict.get('token', None)
             token = request_dict.get('token', None)
-            # 设备主键uid
             tko = TokenObject(token)
             tko = TokenObject(token)
             response.lang = tko.lang
             response.lang = tko.lang
             if tko.code != 0:
             if tko.code != 0:
@@ -77,8 +42,6 @@ class CDKView(View):
                 return self.deleteCDK(request_dict, response)
                 return self.deleteCDK(request_dict, response)
             elif operation == 'queryCDK':
             elif operation == 'queryCDK':
                 return self.queryCDK(request_dict, response)
                 return self.queryCDK(request_dict, response)
-            elif operation == 'saveOrEditCDKform':
-                return self.saveOrEditCDKform(request_dict, response)
             elif operation == 'saveOrEditCDK':
             elif operation == 'saveOrEditCDK':
                 return self.saveOrEditCDK(request_dict, response)
                 return self.saveOrEditCDK(request_dict, response)
             elif operation == 'downloadCDK':
             elif operation == 'downloadCDK':
@@ -128,7 +91,7 @@ class CDKView(View):
         logger = logging.getLogger('info')
         logger = logging.getLogger('info')
         logger.info('CDK测试打印1: {}'.format(time.localtime(time.time())))
         logger.info('CDK测试打印1: {}'.format(time.localtime(time.time())))
         if page and line:
         if page and line:
-            cdk_qs = CDKcontextModel.objects.filter().all()  # values('cdk','create_time','valid_time','is_activate','rank__id','order__id')
+            cdk_qs = CDKcontextModel.objects.filter().all()
             if searchVal:
             if searchVal:
                 if cdk:
                 if cdk:
                     cdk_qs = cdk_qs.filter(cdk__contains=searchVal)
                     cdk_qs = cdk_qs.filter(cdk__contains=searchVal)
@@ -137,21 +100,14 @@ class CDKView(View):
                 elif is_activate:
                 elif is_activate:
                     cdk_qs = cdk_qs.filter(is_activate=searchVal)
                     cdk_qs = cdk_qs.filter(is_activate=searchVal)
 
 
-
             cdk_qs = cdk_qs.filter(rank__lang__lang=lang)
             cdk_qs = cdk_qs.filter(rank__lang__lang=lang)
             cdk_qs = cdk_qs.annotate(rank__title=F('rank__lang__title'))
             cdk_qs = cdk_qs.annotate(rank__title=F('rank__lang__title'))
             cdk_qs = cdk_qs.values('id', 'cdk', 'create_time', 'valid_time', 'is_activate', 'rank__id', 'rank__title',
             cdk_qs = cdk_qs.values('id', 'cdk', 'create_time', 'valid_time', 'is_activate', 'rank__id', 'rank__title',
-                                    'rank__bucket__mold', 'order', 'create_time')
+                                   'rank__bucket__mold', 'order', 'create_time')
             cdk_qs = cdk_qs.order_by('-create_time')  # 根据CDK创建时间降序排序
             cdk_qs = cdk_qs.order_by('-create_time')  # 根据CDK创建时间降序排序
             count = cdk_qs.count()
             count = cdk_qs.count()
             cdk_qs = cdk_qs[(page - 1) * line:page * line]
             cdk_qs = cdk_qs[(page - 1) * line:page * line]
 
 
-            # cdk_dict = {}
-            # for cdk in cdk_qs:
-            #     cdk_dict[cdk['id']] = {'id': cdk['id'], 'cdk': cdk['cdk'], 'create_time': cdk['create_time'],
-            #                            'valid_time': cdk['valid_time'], 'is_activate': cdk['is_activate'],
-            #                            'rank': cdk['rank__id'], 'order': cdk['order']}
-
             res = {
             res = {
                 'datas': list(cdk_qs),
                 'datas': list(cdk_qs),
                 'count': count
                 'count': count
@@ -185,7 +141,7 @@ class CDKView(View):
                 searchVal = is_activate.strip()
                 searchVal = is_activate.strip()
 
 
             if page and line:
             if page and line:
-                cdk_qs = CDKcontextModel.objects.filter().all()  # values('cdk','create_time','valid_time','is_activate','rank__id','order__id')
+                cdk_qs = CDKcontextModel.objects.filter().all()
                 if searchVal:
                 if searchVal:
                     if cdk:
                     if cdk:
                         cdk_qs = cdk_qs.filter(cdk__contains=searchVal)
                         cdk_qs = cdk_qs.filter(cdk__contains=searchVal)
@@ -194,7 +150,6 @@ class CDKView(View):
                     elif is_activate:
                     elif is_activate:
                         cdk_qs = cdk_qs.filter(is_activate=searchVal)
                         cdk_qs = cdk_qs.filter(is_activate=searchVal)
 
 
-
                 cdk_qs = cdk_qs.filter(rank__lang__lang=lang)
                 cdk_qs = cdk_qs.filter(rank__lang__lang=lang)
                 cdk_qs = cdk_qs.annotate(rank__title=F('rank__lang__title'))
                 cdk_qs = cdk_qs.annotate(rank__title=F('rank__lang__title'))
                 cdk_qs = cdk_qs.values('id', 'cdk', 'create_time', 'valid_time', 'is_activate', 'rank__id',
                 cdk_qs = cdk_qs.values('id', 'cdk', 'create_time', 'valid_time', 'is_activate', 'rank__id',
@@ -209,8 +164,6 @@ class CDKView(View):
                 }
                 }
                 return response.json(0, res)
                 return response.json(0, res)
 
 
-
-
     def saveOrEditCDK(self, request_dict, response):
     def saveOrEditCDK(self, request_dict, response):
         cdk_id = request_dict.get("id", None)
         cdk_id = request_dict.get("id", None)
         cdk = request_dict.get('cdk', None)
         cdk = request_dict.get('cdk', None)
@@ -236,28 +189,24 @@ class CDKView(View):
         else:
         else:
             return response.json(0)
             return response.json(0)
 
 
-    def downloadCDK(self,request_dict, response):
+    def downloadCDK(self, request_dict, response):
         region = request_dict.get('region', None)
         region = request_dict.get('region', None)
         content = ''
         content = ''
         if region == 'cn':
         if region == 'cn':
             # 下载国内未使用激活码
             # 下载国内未使用激活码
             content += '激活码(国内)\n'
             content += '激活码(国内)\n'
-            cdk_inactivate_qs = CDKcontextModel.objects.filter(is_down=0, is_activate=0, rank__bucket__mold=0, rank__is_show=0).values('cdk')
+            cdk_inactivate_qs = CDKcontextModel.objects.filter(is_down=0, is_activate=0, rank__bucket__mold=0,
+                                                               rank__is_show=0).values('cdk')
         else:
         else:
             # 下载国外未使用激活码
             # 下载国外未使用激活码
             content += '激活码(国外)\n'
             content += '激活码(国外)\n'
-            cdk_inactivate_qs = CDKcontextModel.objects.filter(is_down=0, is_activate=0, rank__bucket__mold=1, rank__is_show=0).values('cdk')
+            cdk_inactivate_qs = CDKcontextModel.objects.filter(is_down=0, is_activate=0, rank__bucket__mold=1,
+                                                               rank__is_show=0).values('cdk')
         for cdk_inactivate in cdk_inactivate_qs:
         for cdk_inactivate in cdk_inactivate_qs:
             content += cdk_inactivate['cdk'] + '\n'
             content += cdk_inactivate['cdk'] + '\n'
-        # print(content)
 
 
         cdk_inactivate_qs.update(is_down=1)
         cdk_inactivate_qs.update(is_down=1)
         response = StreamingHttpResponse(content)
         response = StreamingHttpResponse(content)
         response['Content-Type'] = 'application/octet-stream'
         response['Content-Type'] = 'application/octet-stream'
         response['Content-Disposition'] = 'attachment;filename="CDK.txt"'
         response['Content-Disposition'] = 'attachment;filename="CDK.txt"'
         return response
         return response
-
-
-
-
-

+ 5 - 131
Controller/CloudVod.py

@@ -1,27 +1,12 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
-@AUTHOR: ASJRD018
-@NAME: AnsjerFormal
-@software: PyCharm
-@DATE: 2018/12/5 9:30
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: CloudVod.py
-@Contact: chanjunkai@163.com
-"""
+import datetime
 import json
 import json
 import math
 import math
 import time
 import time
 import urllib
 import urllib
-import datetime
-import boto3
 
 
-from Object.AliPayObject import AliPayObject
+import boto3
 import oss2
 import oss2
 import paypalrestsdk
 import paypalrestsdk
-import logging
 from aliyunsdkcore import client
 from aliyunsdkcore import client
 from aliyunsdksts.request.v20150401 import AssumeRoleRequest
 from aliyunsdksts.request.v20150401 import AssumeRoleRequest
 from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
 from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
@@ -29,43 +14,16 @@ from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 from django.views.generic.base import View
 
 
-from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_ARN, SERVER_DOMAIN, PAYPAL_CRD, \
-    SERVER_DOMAIN_SSL
+from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_ARN, SERVER_DOMAIN, PAYPAL_CRD
 from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel, \
 from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel, \
-    VodHlsSummary, LogModel
+    VodHlsSummary
+from Object.AliPayObject import AliPayObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Object.UidTokenObject import UidTokenObject
 from Object.UidTokenObject import UidTokenObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 
 
-'''
-# 获取设备推送hls流 证书
-http://192.168.136.40:8077/cloudVod/getSts?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJGVFNMTDhITTQzN1ozOFdVMTExQSIsImNoYW5uZWwiOiI0In0.HO-PzoRwhQ4CFNkjthqOitf48c-XOvHjtNGCeUmBe9g
-# 获取存储的播放文件列表
-#修改状态
-http://192.168.136.40:8077/cloudVod/status?token=local&uid=xxx&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&uid=xxx&channel=4&rank=1
-# 修改设备云存状态
-http://test.dvema.com/cloudVod/status?uid=xxx&channel=4&token=test&status=1
-
-# 获取指定设备云存关联信息
-http://test.dvema.com/cloudVod/details?token=test&uid=xxxx
-
-# 获取回放列表
-http://test.dvema.com/cloudVod/getHlsList?uid=xxxx&channel=4&token=test&daytime=2018121001
-
-
-2设备端
-http://test.dvema.com/cloudVod/getSts?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjaGFubmVsIjoiNCIsInVpZCI6IkZUU0xMOEhNNDM3WjM4V1UxMTFBIn0.wkrwYvIYf5qEukOSTxALSAgSqop-gNBdEvSwScOgYB8
-# 支付宝支付
-http://192.168.136.40:8077/cloudVod/aliPayCreateOrder?token=local&channel=2&rank=1&uid=OOBDSU9547NTRSMF111A
-'''
-
 
 
 # 设备信息添加
 # 设备信息添加
 class CloudVodView(View):
 class CloudVodView(View):
@@ -441,90 +399,6 @@ class CloudVodView(View):
                 return HttpResponse(json.dumps(res, ensure_ascii=False),
                 return HttpResponse(json.dumps(res, ensure_ascii=False),
                                     content_type="application/json,charset=utf-8")
                                     content_type="application/json,charset=utf-8")
 
 
-    #  生成设备sts上传授权
-    # def do_getSts(self, request_dict, ip, response):
-    #     uidToken = request_dict.get('uidToken', None)
-    #     utko = UidTokenObject(uidToken)
-    #     if utko.flag is False:
-    #         return response.json(444, 'uidToken')
-    #     UID = utko.UID
-    #     channel = utko.channel
-    #     print(channel)
-    #     print(UID)
-    #     ubqs = UID_Bucket.objects.filter(uid=UID, channel=channel, status=1). \
-    #         values('channel', 'bucket__bucket', 'bucket__endpoint', 'bucket__region', 'endTime')
-    #     now_time = int(time.time())
-    #     if not ubqs.exists():
-    #         res = {'code': 404, 'msg': '未购买'}
-    #         return HttpResponse(json.dumps(res, ensure_ascii=False), content_type="application/json,charset=utf-8")
-    #     elif ubqs[0]['endTime'] < now_time:
-    #         res = {'code': 404, 'msg': '过期'}
-    #         return HttpResponse(json.dumps(res, ensure_ascii=False), content_type="application/json,charset=utf-8")
-    #     oc_qs = OssCrdModel.objects.filter(uid=UID, channel=channel).values("addTime", "data")
-    #     if oc_qs.exists():
-    #         endTime = int(oc_qs[0]["addTime"]) + 3500
-    #         if endTime > now_time:
-    #             print(endTime)
-    #             print(now_time)
-    #             res = json.loads(oc_qs[0]["data"])
-    #             return JsonResponse(status=200, data=res)
-    #     # 套餐id
-    #     storage = '{uid}/vod{channel}/'.format(uid=UID, channel=channel)
-    #     bucket_name = ubqs[0]['bucket__bucket']
-    #     endpoint = ubqs[0]['bucket__endpoint']
-    #     access_key_id = OSS_STS_ACCESS_KEY
-    #     access_key_secret = OSS_STS_ACCESS_SECRET
-    #     region_id = ubqs[0]['bucket__region']
-    #     role_arn = OSS_ROLE_ARN
-    #     clt = client.AcsClient(access_key_id, access_key_secret, region_id)
-    #     req = AssumeRoleRequest.AssumeRoleRequest()
-    #     # 设置返回值格式为JSON。
-    #     req.set_accept_format('json')
-    #     req.set_RoleArn(role_arn)
-    #     req.set_RoleSessionName(UID)
-    #     req.set_DurationSeconds(3600)
-    #     Resource_access = "acs:oss:*:*:{bucket_name}/{uid_channel}*".format(bucket_name=bucket_name,
-    #                                                                         uid_channel=storage)
-    #     print(Resource_access)
-    #     policys = {
-    #         "Version": "1",
-    #         "Statement": [
-    #             {
-    #                 "Action": ["oss:PutObject", "oss:DeleteObject", ],
-    #                 "Resource": [Resource_access],
-    #                 "Effect": "Allow",
-    #                 "Condition": {
-    #                     "IpAddress": {"acs:SourceIp": ip}
-    #                     # "IpAddress": {"acs:SourceIp": "120.237.157.184"}
-    #                     # "IpAddress": {"acs:SourceIp": "*"}
-    #                 }
-    #             }
-    #         ]
-    #     }
-    #     req.set_Policy(Policy=json.dumps(policys))
-    #     body = clt.do_action(req)
-    #     # 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
-    #     token = json.loads(body.decode('utf-8'))
-    #     print(token)
-    #     res = {
-    #         'AccessKeyId': token['Credentials']['AccessKeyId'],
-    #         'AccessKeySecret': token['Credentials']['AccessKeySecret'],
-    #         'SecurityToken': token['Credentials']['SecurityToken'],
-    #         'Expiration': token['Credentials']['Expiration'],
-    #         'expire': '3600',
-    #         'endpoint': endpoint,
-    #         'bucket_name': bucket_name,
-    #         'arn': token['AssumedRoleUser']['Arn'],
-    #         'code': 0,
-    #         'storage': storage,
-    #         'endTime': ubqs[0]['endTime'],
-    #         'ip': ip}
-    #     if oc_qs.exists():
-    #         oc_qs.update(data=json.dumps(res), addTime=now_time)
-    #     else:
-    #         OssCrdModel.objects.create(uid=UID, channel=channel, data=json.dumps(res), addTime=now_time)
-    #     return JsonResponse(status=200, data=res)
-
     def do_paypal_execute(self, request_dict, response):
     def do_paypal_execute(self, request_dict, response):
         paymentId = request_dict.get('paymentId', None)
         paymentId = request_dict.get('paymentId', None)
         PayerID = request_dict.get('PayerID', None)
         PayerID = request_dict.get('PayerID', None)

+ 7 - 22
Controller/StsOssController.py

@@ -1,26 +1,12 @@
-#!/usr/bin/env python3  
-# -*- coding: utf-8 -*-  
-"""
-@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
-@AUTHOR: ASJRD018
-@NAME: AnsjerFormal
-@software: PyCharm
-@DATE: 2019/5/10 8:43
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: StsOssController.py
-@Contact: chanjunkai@163.com
-"""
+import json
 
 
+from aliyunsdkcore import client
+from aliyunsdksts.request.v20150401 import AssumeRoleRequest
 from django.views.generic import View
 from django.views.generic import View
 
 
+from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY, OSS_ROLE_ARN
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
-from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY, OSS_ROLE_ARN
-from aliyunsdkcore import client
-from aliyunsdksts.request.v20150401 import AssumeRoleRequest
-import json
-from var_dump import var_dump
 
 
 
 
 class StsOssView(View):
 class StsOssView(View):
@@ -39,7 +25,6 @@ class StsOssView(View):
 
 
     def validation(self, request_dict, operation):
     def validation(self, request_dict, operation):
         response = ResponseObject()
         response = ResponseObject()
-        from var_dump import var_dump
         # var_dump(request_dict)
         # var_dump(request_dict)
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if operation == 'uidPreview':
         if operation == 'uidPreview':
@@ -63,13 +48,13 @@ class StsOssView(View):
         req.set_RoleArn(OSS_ROLE_ARN)
         req.set_RoleArn(OSS_ROLE_ARN)
         req.set_RoleSessionName(userID)
         req.set_RoleSessionName(userID)
         req.set_DurationSeconds(3600)
         req.set_DurationSeconds(3600)
-        Resource_access = "acs:oss:*:*:{bucket_name}/{userID}*".\
-            format(bucket_name=bucket_name,userID=userID)
+        Resource_access = "acs:oss:*:*:{bucket_name}/{userID}*". \
+            format(bucket_name=bucket_name, userID=userID)
         policys = {
         policys = {
             "Version": "1",
             "Version": "1",
             "Statement": [
             "Statement": [
                 {
                 {
-                    "Action": ["oss:PutObject", "oss:DeleteObject", "oss:GetObject",],
+                    "Action": ["oss:PutObject", "oss:DeleteObject", "oss:GetObject", ],
                     # "Action": ["*"],
                     # "Action": ["*"],
                     # "Action": ["*"],
                     # "Action": ["*"],
                     "Resource": [Resource_access],
                     "Resource": [Resource_access],

+ 0 - 289
Controller/TestApi.py

@@ -35,7 +35,6 @@ import oss2
 import paypalrestsdk
 import paypalrestsdk
 import logging
 import logging
 from aliyunsdkcore import client
 from aliyunsdkcore import client
-from aliyunsdksts.request.v20150401 import AssumeRoleRequest
 from django.http import JsonResponse, HttpResponse
 from django.http import JsonResponse, HttpResponse
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
@@ -533,294 +532,6 @@ class testView(View):
         # return response
         # return response
         # return HttpResponse(status=200, content=playlist)
         # return HttpResponse(status=200, content=playlist)
 
 
-    def do_test_get_sign_sts(self, request_dict, ip, response):
-        # uid = 'GZL2PEFJPLY7W6BG111A'
-        # channel = 2
-        uid = 'VVDHCVBYDKFMJRWA111A'
-        channel = 1
-        now_time = int(time.time())
-        ubqs = UID_Bucket.objects.filter(uid=uid, channel=channel, endTime__gte=now_time). \
-            values("bucket__mold", "bucket__bucket", "bucket__endpoint", "bucket__region", "endTime")
-        if ubqs.exists():
-            if ubqs[0]["bucket__mold"] == 0:
-                # 阿里云 oss sts
-                oc_qs = OssCrdModel.objects.filter(uid=uid, channel=channel). \
-                    values("addTime", "data")
-                if oc_qs.exists():
-                    endTime = int(oc_qs[0]["addTime"]) + 3500
-                    if endTime > now_time:
-                        print(endTime)
-                        print(now_time)
-                        res = json.loads(oc_qs[0]["data"])
-                        return JsonResponse(status=200, data=res)
-                # 套餐id
-                storage = '{uid}/vod{channel}/'.format(uid=uid, channel=channel)
-                bucket_name = ubqs[0]['bucket__bucket']
-                endpoint = ubqs[0]['bucket__endpoint']
-                access_key_id = OSS_STS_ACCESS_KEY
-                access_key_secret = OSS_STS_ACCESS_SECRET
-                region_id = ubqs[0]['bucket__region']
-                role_arn = OSS_ROLE_ARN
-                clt = client.AcsClient(access_key_id, access_key_secret, region_id)
-                req = AssumeRoleRequest.AssumeRoleRequest()
-                # 设置返回值格式为JSON。
-                req.set_accept_format('json')
-                req.set_RoleArn(role_arn)
-                req.set_RoleSessionName(uid + '_' + channel)
-                req.set_DurationSeconds(3600)
-                Resource_access = "acs:oss:*:*:{bucket_name}/{uid_channel}*". \
-                    format(bucket_name=bucket_name, uid_channel=storage)
-                print(Resource_access)
-                policys = {
-                    "Version": "1",
-                    "Statement": [
-                        {
-                            "Action": ["oss:PutObject", "oss:DeleteObject", ],
-                            "Resource": [Resource_access],
-                            "Effect": "Allow",
-                            "Condition": {
-                                "IpAddress": {"acs:SourceIp": ip}
-                                # "IpAddress": {"acs:SourceIp": "120.237.157.184"}
-                                # "IpAddress": {"acs:SourceIp": "*"}
-                            }
-                        }
-                    ]
-                }
-                req.set_Policy(Policy=json.dumps(policys))
-                body = clt.do_action(req)
-                # 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
-                token = json.loads(body.decode('utf-8'))
-                print(token)
-                res = {
-                    'AccessKeyId': token['Credentials']['AccessKeyId'],
-                    'AccessKeySecret': token['Credentials']['AccessKeySecret'],
-                    'SecurityToken': token['Credentials']['SecurityToken'],
-                    'Expiration': token['Credentials']['Expiration'],
-                    'expire': '3600',
-                    'endpoint': endpoint,
-                    'bucket_name': bucket_name,
-                    'arn': token['AssumedRoleUser']['Arn'],
-                    'code': 0,
-                    'storage': storage,
-                    'endTime': ubqs[0]['endTime'],
-                    'ip': ip}
-                if oc_qs.exists():
-                    oc_qs.update(data=json.dumps(res), addTime=now_time)
-                else:
-                    OssCrdModel.objects.create \
-                        (uid=uid, channel=channel, data=json.dumps(res), addTime=now_time)
-                return JsonResponse(status=200, data=res)
-            elif ubqs[0]["bucket__mold"] == 1:
-                # 亚马逊 s3 sts
-                sts_qs = StsCrdModel.objects.filter(uid=uid, channel=channel). \
-                    values("addTime", "data")
-                if sts_qs.exists():
-                    endTime = int(sts_qs[0]["addTime"]) + 3500
-                    if endTime > now_time:
-                        print(endTime)
-                        print(now_time)
-                        res = json.loads(sts_qs[0]["data"])
-                        return JsonResponse(status=200, data=res)
-                    # 套餐id
-                storage = '{uid}/vod{channel}/'.format(uid=uid, channel=channel)
-                bucket_name = ubqs[0]['bucket__bucket']
-                endpoint = ubqs[0]['bucket__endpoint']
-                region_id = ubqs[0]['bucket__region']
-
-                ###############
-                REGION_NAME = region_id
-                boto3_sts = boto3.client(
-                    'sts',
-                    aws_access_key_id='AKIA2E67UIMD45Y3HL53',
-                    aws_secret_access_key='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',
-                    region_name=REGION_NAME
-                )
-                Policy = {
-                    "Version": "2012-10-17",
-                    "Statement": [
-                        {
-                            "Effect": "Allow",
-                            "Action": "s3:*",
-                            "Resource": ["arn:aws:s3:::azvod1/{uid_channel}/*".
-                                             format(uid_channel=storage)]
-                        }
-                    ]
-                }
-                response = boto3_sts.get_federation_token(
-                    Name='{role_name}'.format(role_name=uid + '_' + channel),
-                    Policy=json.dumps(Policy),
-                    DurationSeconds=7200
-                )
-                ###############
-                res = {
-                    'AccessKeyId': response['Credentials']['AccessKeyId'],
-                    'AccessKeySecret': response['Credentials']['SecretAccessKey'],
-                    'SessionToken': response['Credentials']['SessionToken'],
-                    'Expiration': response['Credentials']['Expiration'],
-                    'expire': '3600',
-                    'endpoint': endpoint,
-                    'bucket_name': bucket_name,
-                    'arn': response['FederatedUser']['Arn'],
-                    'code': 0,
-                    'storage': storage,
-                    'endTime': ubqs[0]['endTime'],
-                    'ip': ip,
-                }
-                if sts_qs.exists():
-                    sts_qs.update(data=json.dumps(res, default=str), addTime=now_time)
-                else:
-                    StsCrdModel.objects.create(uid=uid, channel=channel, data=json.dumps(res, default=str),
-                                               addTime=now_time, type=1)
-                return JsonResponse(status=200, data=res)
-            else:
-                res = {'code': 404, 'msg': 'data not exists!'}
-                return HttpResponse(json.dumps(res, ensure_ascii=False),
-                                    content_type="application/json,charset=utf-8")
-
-    def do_get_sign_sts(self, request_dict, ip, response):
-        # uid = 'GZL2PEFJPLY7W6BG111A'
-        # channel = 2
-        uid = '86YC8Z192VB1VMKU111A'
-        channel = 1
-        now_time = int(time.time())
-        ubqs = UID_Bucket.objects.filter(uid=uid, channel=channel, endTime__gte=now_time). \
-            values("bucket__mold", "bucket__bucket", "bucket__endpoint", "bucket__region", "endTime")
-        if ubqs.exists():
-            if ubqs[0]["bucket__mold"] == 0:
-                # 阿里云 oss sts
-                oc_qs = OssCrdModel.objects.filter(uid=uid, channel=channel). \
-                    values("addTime", "data")
-                if oc_qs.exists():
-                    endTime = int(oc_qs[0]["addTime"]) + 3500
-                    if endTime > now_time:
-                        print(endTime)
-                        print(now_time)
-                        res = json.loads(oc_qs[0]["data"])
-                        return JsonResponse(status=200, data=res)
-                # 套餐id
-                storage = '{uid}/vod{channel}/'.format(uid=uid, channel=channel)
-                bucket_name = ubqs[0]['bucket__bucket']
-                endpoint = ubqs[0]['bucket__endpoint']
-                access_key_id = OSS_STS_ACCESS_KEY
-                access_key_secret = OSS_STS_ACCESS_SECRET
-                region_id = ubqs[0]['bucket__region']
-                role_arn = OSS_ROLE_ARN
-                clt = client.AcsClient(access_key_id, access_key_secret, region_id)
-                req = AssumeRoleRequest.AssumeRoleRequest()
-                # 设置返回值格式为JSON。
-                req.set_accept_format('json')
-                req.set_RoleArn(role_arn)
-                req.set_RoleSessionName(uid + '_' + channel)
-                req.set_DurationSeconds(3600)
-                Resource_access = "acs:oss:*:*:{bucket_name}/{uid_channel}*". \
-                    format(bucket_name=bucket_name, uid_channel=storage)
-                print(Resource_access)
-                policys = {
-                    "Version": "1",
-                    "Statement": [
-                        {
-                            "Action": ["oss:PutObject", "oss:DeleteObject", ],
-                            "Resource": [Resource_access],
-                            "Effect": "Allow",
-                            "Condition": {
-                                "IpAddress": {"acs:SourceIp": ip}
-                                # "IpAddress": {"acs:SourceIp": "120.237.157.184"}
-                                # "IpAddress": {"acs:SourceIp": "*"}
-                            }
-                        }
-                    ]
-                }
-                req.set_Policy(Policy=json.dumps(policys))
-                body = clt.do_action(req)
-                # 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
-                token = json.loads(body.decode('utf-8'))
-                print(token)
-                res = {
-                    'AccessKeyId': token['Credentials']['AccessKeyId'],
-                    'AccessKeySecret': token['Credentials']['AccessKeySecret'],
-                    'SecurityToken': token['Credentials']['SecurityToken'],
-                    'Expiration': token['Credentials']['Expiration'],
-                    'expire': '3600',
-                    'endpoint': endpoint,
-                    'bucket_name': bucket_name,
-                    'arn': token['AssumedRoleUser']['Arn'],
-                    'code': 0,
-                    'storage': storage,
-                    'endTime': ubqs[0]['endTime'],
-                    'ip': ip}
-                if oc_qs.exists():
-                    oc_qs.update(data=json.dumps(res), addTime=now_time)
-                else:
-                    OssCrdModel.objects.create \
-                        (uid=uid, channel=channel, data=json.dumps(res), addTime=now_time)
-                return JsonResponse(status=200, data=res)
-            elif ubqs[0]["bucket__mold"] == 1:
-                # 亚马逊 s3 sts
-                sts_qs = StsCrdModel.objects.filter(uid=uid, channel=channel). \
-                    values("addTime", "data")
-                if sts_qs.exists():
-                    endTime = int(sts_qs[0]["addTime"]) + 3500
-                    if endTime > now_time:
-                        print(endTime)
-                        print(now_time)
-                        res = json.loads(sts_qs[0]["data"])
-                        return JsonResponse(status=200, data=res)
-                    # 套餐id
-                storage = '{uid}/vod{channel}/'.format(uid=uid, channel=channel)
-                bucket_name = ubqs[0]['bucket__bucket']
-                endpoint = ubqs[0]['bucket__endpoint']
-                region_id = ubqs[0]['bucket__region']
-
-                ###############
-                REGION_NAME = region_id
-                boto3_sts = boto3.client(
-                    'sts',
-                    aws_access_key_id='AKIA2E67UIMD45Y3HL53',
-                    aws_secret_access_key='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',
-                    region_name=REGION_NAME
-                )
-                Policy = {
-                    "Version": "2012-10-17",
-                    "Statement": [
-                        {
-                            "Effect": "Allow",
-                            "Action": "s3:*",
-                            "Resource": ["arn:aws:s3:::azvod1/{uid_channel}/*".
-                                             format(uid_channel=storage)]
-                        }
-                    ]
-                }
-                response = boto3_sts.get_federation_token(
-                    Name='{role_name}'.format(role_name=uid + '_' + channel),
-                    Policy=json.dumps(Policy),
-                    DurationSeconds=7200
-                )
-                ###############
-                res = {
-                    'AccessKeyId': response['Credentials']['AccessKeyId'],
-                    'AccessKeySecret': response['Credentials']['SecretAccessKey'],
-                    'SessionToken': response['Credentials']['SessionToken'],
-                    'Expiration': response['Credentials']['Expiration'],
-                    'expire': '3600',
-                    'endpoint': endpoint,
-                    'bucket_name': bucket_name,
-                    'arn': response['FederatedUser']['Arn'],
-                    'code': 0,
-                    'storage': storage,
-                    'endTime': ubqs[0]['endTime'],
-                    'ip': ip,
-                }
-                if sts_qs.exists():
-                    sts_qs.update(data=json.dumps(res, default=str), addTime=now_time)
-                else:
-                    StsCrdModel.objects.create(uid=uid, channel=channel, data=json.dumps(res, default=str),
-                                               addTime=now_time, type=1)
-                return JsonResponse(status=200, data=res)
-            else:
-                res = {'code': 404, 'msg': 'data not exists!'}
-                return HttpResponse(json.dumps(res, ensure_ascii=False),
-                                    content_type="application/json,charset=utf-8")
-
     def do_pay_by_ali(self, request_dict, userID, response):
     def do_pay_by_ali(self, request_dict, userID, response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         rank = request_dict.get('rank', None)
         rank = request_dict.get('rank', None)