Browse Source

registerdid

chenjunkai 6 years ago
parent
commit
551de8ed9b

+ 0 - 70
Ansjer/test/coposs_sts.py

@@ -1,70 +0,0 @@
-# -*- coding: utf-8 -*-
-'''
-生成sts上传授权
-'''
-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)

+ 0 - 73
Ansjer/test/oss.py

@@ -1,73 +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/9/19 10:53
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: oss.py
-@Contact: chanjunkai@163.com
-"""
-from oss2 import *
-from oss2.models import *
-import time
-from var_dump import var_dump
-import urllib
-
-###########
-host = "oss-cn-shenzhen.aliyuncs.com"  # just for example
-# host = "hlsvoda.zositech.cn"  # just for example
-# host = 'oss-eu-central-1.aliyuncs.com'
-
-accessid = 'LTAIyMkGfEdogyL9'
-accesskey = '71uIjpsqVOmF7DAITRyRuc259jHOjO'
-
-
-
-import oss2
-
-# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
-auth = Auth(accessid, accesskey)
-
-# Endpoint以杭州为例,其它Region请按实际情况填写。
-service = oss2.Service(auth, host)
-
-print([b.name for b in oss2.BucketIterator(service)])
-
-
-exit()
-
-
-
-bucket_name = "cnvod1"
-channel_name = "vod"
-auth = Auth(accessid, accesskey)
-bucket = Bucket(auth, host, bucket_name)
-
-######################
-# 缩略图
-url = bucket.sign_url('GET', 'VVDHCVBYDKFMJRWA111A/vod1/2019010315/1546498920/ts2.ts', 60 * 60, params={'x-oss-process': 'video/snapshot,t_10000,m_fast,w_300'})
-# url = bucket.sign_url('GET', 'FTSLL8HM437Z38WU111A/vod4/2018121001/1543902118/1543902118.m3u8', 60 * 60, params={'x-oss-process': 'hls/sign'})
-# url = urllib.parse.unquote(url, encoding='utf-8', errors='replace')
-urllst = url.split('?')
-url_start = urllib.parse.unquote(urllst[0])
-url_end = urllst[1]
-
-vod_play_url = '{url_start}?{url_end}'.format(url_start=url_start, url_end=url_end)
-print(vod_play_url)
-exit()
-# 播放m3u8
-# m3list = bucket.post_vod_playlist(channel_name=channel_name, playlist_name='test.m3u8', start_time=1537336020119,
-#                                   end_time=1537336029318)
-
-exit()
-# 获取推流地址
-channel_cfg = LiveChannelInfo(target=LiveChannelInfoTarget(frag_count=10))
-channel = bucket.create_live_channel(channel_name, channel_cfg)
-publish_url = channel.publish_url
-signed_publish_url = bucket.sign_rtmp_url("vod", "playlist.m3u8", 3600)
-print(signed_publish_url)
-

+ 0 - 60
Ansjer/test/oss_sts.py

@@ -1,60 +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 = '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('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)
-
-
-# 使用临时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)

+ 0 - 66
Ansjer/test/osssigput.py

@@ -1,66 +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
-'''
-
-# tokenss ={"arn": "acs:ram::1901342792446414:role/stsoss/P2WNGJRD2EHA5EU9111A", "expire": "3600", "Expiration": "2019-02-25T07:03:40Z", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "ip": "120.237.157.181", "storage": "P2WNGJRD2EHA5EU9111A/vod1/", "AccessKeySecret": "ErbGnFyPWPcfNBPRkcpZBJNBVpsX73q2u5vgJYownBQd", "SecurityToken": "CAIS9AJ1q6Ft5B2yfSjIr4vWBsLMjLBI0q2haFD/pTUgb8RvqL3pqDz2IHFIf3NhAe0bv/kzm2lX7/YYlr1LEaBjam7+QZFdzr0K3D7wOtOYkpRIRwn3ctj3d1KIAjvXgeV+CoeQFaELE5XAQlTAkTAJkNmeXD6+XlujHISUgJp8FLo+VRW5ajw0TbUzIRB5+vcHKVzbN/umLnyShXHLXmZlvgdghER166m03re4iHzkgUb91/UeqqnoP5GgdLMMBppkVMqv1+EELsiH2SVLuR9R7/U03u4W8jHZud3ERGEL3DOpEdD4qPBPBVJUW/ljQvdt6+b7maQ/+JaX9eXW0z9BMftYSD+lIImr25n/H/6zPdsYbcSCWROUiIjJbMKq9Vp5PjRCZFpoA4NwciYrVUZzG2uGdvH7oQzwD139G/Tf4sYfyoFoyljkx92OKmWUTq+RuSRiYc5gNBl5b0NLjDG9LfZZKlwWaT18G62SVp5jypvDLGYoZWYagAGOO+MMAjzgPaDMySC/exBy3d1Lp0iCGLeY6HYgMhel1YjuC2+vaPxvIaTgp4n9+QmQi+i1wtRhCVk8bwY0YCgNO5nZds4E0J5g7xTfnMfm30FaRs5s3rJohwEwp4cnsxgqsDGwwvqpOAefRd/hscpw3frgyPEVG6b6XRY4na+xpA==", "AccessKeyId": "STS.NHcMxxaoieoJjvNA5ucKCGxBJ", "bucket_name": "cnvod1", "code": 0}
-tokenss = {"arn": "acs:ram::1901342792446414:role/stsoss/P2WNGJRD2EHA5EU9111A", "expire": "3600", "endpoint": "oss-cn-shenzhen.aliyuncs.com", "AccessKeySecret": "ErbGnFyPWPcfNBPRkcpZBJNBVpsX73q2u5vgJYownBQd", "ip": "120.237.157.181", "storage": "P2WNGJRD2EHA5EU9111A/vod1/", "Expiration": "2019-02-25T07:03:40Z", "SecurityToken": "CAIS9AJ1q6Ft5B2yfSjIr4vWBsLMjLBI0q2haFD/pTUgb8RvqL3pqDz2IHFIf3NhAe0bv/kzm2lX7/YYlr1LEaBjam7+QZFdzr0K3D7wOtOYkpRIRwn3ctj3d1KIAjvXgeV+CoeQFaELE5XAQlTAkTAJkNmeXD6+XlujHISUgJp8FLo+VRW5ajw0TbUzIRB5+vcHKVzbN/umLnyShXHLXmZlvgdghER166m03re4iHzkgUb91/UeqqnoP5GgdLMMBppkVMqv1+EELsiH2SVLuR9R7/U03u4W8jHZud3ERGEL3DOpEdD4qPBPBVJUW/ljQvdt6+b7maQ/+JaX9eXW0z9BMftYSD+lIImr25n/H/6zPdsYbcSCWROUiIjJbMKq9Vp5PjRCZFpoA4NwciYrVUZzG2uGdvH7oQzwD139G/Tf4sYfyoFoyljkx92OKmWUTq+RuSRiYc5gNBl5b0NLjDG9LfZZKlwWaT18G62SVp5jypvDLGYoZWYagAGOO+MMAjzgPaDMySC/exBy3d1Lp0iCGLeY6HYgMhel1YjuC2+vaPxvIaTgp4n9+QmQi+i1wtRhCVk8bwY0YCgNO5nZds4E0J5g7xTfnMfm30FaRs5s3rJohwEwp4cnsxgqsDGwwvqpOAefRd/hscpw3frgyPEVG6b6XRY4na+xpA==", "AccessKeyId": "STS.NHcMxxaoieoJjvNA5ucKCGxBJ", "bucket_name": "cnvod1", "code": 0}
-# 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
-
-# 使用临时token中的认证信息初始化StsAuth实例。
-auth = oss2.StsAuth(tokenss['AccessKeyId'],
-                    tokenss['AccessKeySecret'],
-                    tokenss['SecurityToken'])
-print(auth)
-############### callback
-callback_dict = {}
-callback_dict['callbackUrl'] = 'http://www.dvema.com:3000/?token=token&filename=shijianchuo&size=1234&len=1234'
-# 设置回调请求消息头中Host的值, 如oss-cn-hangzhou.aliyuncs.com。
-callback_dict['callbackHost'] = 'oss-cn-shenzhen.aliyuncs.com'
-# 设置发起回调时请求body的值。
-callback_dict['callbackBody'] = 'filename=${object}&size=${size}&mimeType=${mimeType}'
-# 设置发起回调请求的Content-Type。
-callback_dict['callbackBodyType'] = 'application/x-www-form-urlencoded'
-# 回调参数是Json格式,并且需要Base64编码。
-callback_param = json.dumps(callback_dict).strip()
-base64_callback_body = oss2.utils.b64encode_as_string(callback_param)
-# 回调参数编码后放在Header中发送给OSS。
-headers = {'x-oss-callback': base64_callback_body}
-################
-# exit()
-# 使用StsAuth实例初始化存储空间。
-endpoint = tokenss['endpoint']
-bucket = oss2.Bucket(auth, tokenss['endpoint'], tokenss['bucket_name'])
-# # 上传一个字符串。
-# bucket.delete_object('a-3.txt')
-# exit()
-patht = tokenss['storage'] + 'asfsdafsdafdsa'
-print(patht)
-print(endpoint)
-print(bucket.put_object(patht, b'ddd'))
-# bucket.put_object('FTSLL8HM437Z38WU111A/vod4/1234.txt', b'12345646',headers)
-exit()
-res = bucket.get_object('ddd.txt')
-print(res.read())

+ 0 - 97
Ansjer/test/s3sts.py

@@ -1,97 +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 17:30
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: s3sts.py
-@Contact: chanjunkai@163.com
-"""
-
-def getCredentials():
-    import boto3
-    REGION_NAME = 'us-east-1'  # e.g
-    import json
-
-    sts = boto3.client(
-        'sts',
-        aws_access_key_id='AKIAIXAA4C3QCK7ZNUOA',
-        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:::ansjerfilemanager/*"]}]}
-    credentials = sts.get_federation_token(
-        Name='chanjunkai@163.com',  # or any unique text related to user
-        Policy=json.dumps(Policy),
-        DurationSeconds=3600,
-        # minimum is 200 which is enough as token is just for start of request and necessarily need not live throughout the life of the whole upload.
-    )
-
-    print(credentials)
-    access_key_id = credentials['Credentials']['AccessKeyId']
-    session_token = credentials['Credentials']['SessionToken']
-    secret_access_key = credentials['Credentials']['SecretAccessKey']
-
-# getCredentials()
-#
-# exit()
-def getCredentialsTemplate():
-    import boto3
-    REGION_NAME = 'us-east-1'  # e.g
-
-    sts = boto3.client(
-        'sts',
-        aws_access_key_id='AKIAIXAA4C3QCK7ZNUOA',
-        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:::<your-bucket>/<key-folder>/*"]}]}
-    credentials = sts.get_federation_token(
-        Name='12132@qq.com',  # or any unique text related to user
-        Policy={},
-        DurationSeconds=3600,
-        # minimum is 200 which is enough as token is just for start of request and necessarily need not live throughout the life of the whole upload.
-    )
-    access_key_id = credentials['Credentials']['AccessKeyId']
-    session_token = credentials['Credentials']['SessionToken']
-    secret_access_key = credentials['Credentials']['SecretAccessKey']
-    print(credentials)
-
-def test():
-    print('test')
-    import boto3
-    REGION_NAME = 'us-east-1'  # e.g
-    import json
-    # crd = {'Credentials': {'AccessKeyId': 'ASIA2E67UIMDZEZW7F56', 'SecretAccessKey': '2XE3bxqUlt7RTwojtsOxAQdp25dXlPSOGJr4PJ9l', 'SessionToken': 'FQoGZXIvYXdzEHIaDNE8Ddu2SeUjFQB3ICL7AVZuoryvjuDgFFkNuB81R2tO+jo5xbH3mecUN9SygDRWccfGqUkZZli8h9oF9nxht3LzawpTzR8Xsk3Zcq7hXZ4n69nNjCzO5iRAqNU5OSA5QdS70xcJyGBvMz5QX+QL6T8nTUf0qImvgTgzHl1U7dhPDkpR2TTpuFkoCxPjPDDmljA45TzOzDPkZ9P48njKF0ijJsWKUIJSOOXpixn7QZHE0+WzCrl4OQdr4gyYBDufYQl4Hc/jhG1W40FE9KARRClOFQk01gc8RZR07K26+bDUfLdhT4uBpwZ64xR64VQX0OKVu0e9hjPFEePDheSIwdzS7htJomuF5Vq7KIGuk98F', 'Expiration': datetime.datetime(2018, 11, 9, 1, 38, 25, tzinfo=tzutc())}, 'FederatedUser': {'FederatedUserId': '697864307463:chanjunkai@163.com', 'Arn': 'arn:aws:sts::697864307463:federated-user/chanjunkai@163.com'}, 'PackedPolicySize': 11, 'ResponseMetadata': {'RequestId': 'c4e67d2b-e3b7-11e8-b1b0-bfa03e244fac', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'c4e67d2b-e3b7-11e8-b1b0-bfa03e244fac', 'content-type': 'text/xml', 'content-length': '1151', 'date': 'Fri, 09 Nov 2018 00:38:24 GMT'}, 'RetryAttempts': 0}}
-    crd = {'AccessKeyId': 'ASIA2E67UIMD2KA76ZX3', 'SecretAccessKey': 'HbbZPLKcdr1vh81fUH5M8bGzhobPJ9/7SjOBqLNB', 'SessionToken': 'FQoGZXIvYXdzEOz//////////wEaDOT/uGl4KlSpHcQk1SL7AZW+0TxQFvhBp+UtPACl1L7WXftaHv7R5AozWYO/MmDHU1IDSQw0JNbK6v5xhOtxgdE2aSmN0UGq9g5SyI5+EX8xDrwuSg6b8fgUJ6Z9N62xO1e5qnY5wYI1R6xbmRHqCfIN+uBg/PzeKKcSLiLfK49nPbxTsgXn3drW+pQ4kjvyTDQlNVqwCk61eNTrt+WIqKz7e71BUV5I0vlERivyknWve5uoBrBGesYRSxAYT5/9MqvvGMc8k8lfDStlJOwANPqcXFyQFg8heU3pnenjJZOQ+vMHzEHxL7yZseq6SoadjkWT6xm4VyDLGPGr4IdUaoP1V9FFDdGbVHwzKM6crt8F'}
-
-
-
-    # s3_resource = boto3.resource(
-    s3_resource = boto3.client(
-        's3',
-        aws_access_key_id=crd['AccessKeyId'],
-        aws_secret_access_key=crd['SecretAccessKey'],
-        aws_session_token=crd['SessionToken'],
-    )
-    response = s3_resource.put_object(
-        Body='xxxxx',
-        Key='test',
-        Bucket='ansjerfilemanager',
-        # Expires=datetime()
-    )
-    # response = s3_resource.get_object(
-    #     Bucket='ansjerfilemanager',
-    #     Key='face.jpg',
-    # )
-    print(response)
-
-test()

+ 0 - 80
Ansjer/test/test.py

@@ -1,80 +0,0 @@
-# -*- coding:utf-8 -*-
-import smtplib
-import email
-from email.mime.multipart import MIMEMultipart
-from email.mime.text import MIMEText
-from email.mime.image import MIMEImage
-from email.mime.base import MIMEBase
-from email.mime.application import MIMEApplication
-from email.header import Header
-# 发件人地址,通过控制台创建的发件人地址
-username = 'message@dvema.com'
-# 发件人密码,通过控制台创建的发件人密码
-password = 'SMtp123456'
-# 自定义的回复地址
-replyto = '***'
-# 收件人地址或是地址列表,支持多个收件人,最多30个
-#rcptto = '***,***'
-# rcptto = '1758730877@qq.com'
-rcptto = 'cjk1758730877@gmail.com'
-# 构建alternative结构
-msg = MIMEMultipart('alternative')
-msg['Subject'] = Header('自定义信件主题').encode()
-msg['From'] = '%s <%s>' % (Header('自定义发信昵称').encode(), username)
-# msg['To'] = rcptto
-msg['Reply-to'] = replyto
-msg['Message-id'] = email.utils.make_msgid()
-msg['Date'] = email.utils.formatdate()
-# 构建alternative的text/plain部分
-# textplain = MIMEText('自定义TEXT纯文本部分', _subtype='plain', _charset='UTF-8')
-# msg.attach(textplain)
-# 构建alternative的text/html部分
-sendHtml = '''
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-<div class="content"
-     style="overflow: hidden;padding:30px 10% 70px 10%;margin:0 10%;background-color: #fff;box-shadow:0 4px 20px rgba(0,0,0,0.1);word-break: break-all;">
-    <h2 style="margin: 30px 0;">Hello, {username}</h2>
-    <p style="margin-bottom: 40px;">请输入验证码完成注册,有效期10分钟:</p>
-    <span style="padding: 10px 20px; font-size: 24px;background-color: #EB6F5A;border-radius:4px;color:#fff;">{captcha}</span>
-</div>
-</body>
-</html>
-'''
-texthtml = MIMEText(sendHtml, _subtype='html', _charset='UTF-8')
-msg.attach(texthtml)
-# 发送邮件
-try:
-    client = smtplib.SMTP()
-    #python 2.7以上版本,若需要使用SSL,可以这样创建client
-    #client = smtplib.SMTP_SSL()
-    #SMTP普通端口为25或80
-    client.connect('smtpdm.aliyun.com', 25)
-    #开启DEBUG模式
-    client.set_debuglevel(0)
-    client.login(username, password)
-    #发件人和认证地址必须一致
-    #备注:若想取到DATA命令返回值,可参考smtplib的sendmaili封装方法:
-    #      使用SMTP.mail/SMTP.rcpt/SMTP.data方法
-    client.sendmail(username, rcptto, msg.as_string())
-    client.quit()
-    print('邮件发送成功')
-except smtplib.SMTPConnectError as e:
-    print('邮件发送失败,连接失败:', e.smtp_code, e.smtp_error)
-except smtplib.SMTPAuthenticationError as e:
-    print('邮件发送失败,认证错误:', e.smtp_code, e.smtp_error)
-except smtplib.SMTPSenderRefused as e:
-    print('邮件发送失败,发件人被拒绝:', e.smtp_code, e.smtp_error)
-except smtplib.SMTPRecipientsRefused as e:
-    print('邮件发送失败,收件人被拒绝:', e.smtp_code, e.smtp_error)
-except smtplib.SMTPDataError as e:
-    print('邮件发送失败,数据接收拒绝:', e.smtp_code, e.smtp_error)
-except smtplib.SMTPException as e:
-    print('邮件发送失败, ', e.message)
-except Exception as e:
-    print('邮件发送异常, ', str(e))

BIN
Ansjer/test/util/__pycache__/spnsss.cpython-36.pyc


+ 0 - 71
Ansjer/test/util/apns-dev.pem

@@ -1,71 +0,0 @@
-Bag Attributes
-    friendlyName: Apple Development IOS Push Services: com.ansjer.zsavcloud
-    localKeyID: EE FA 88 7C 98 58 FD 7D 8C 91 F5 33 67 4F 73 49 BB AA E4 EE 
-subject=/UID=com.ansjer.zsavcloud/CN=Apple Development IOS Push Services: com.ansjer.zsavcloud/OU=772N5HXAR2/C=CN
-issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority
------BEGIN CERTIFICATE-----
-MIIFjTCCBHWgAwIBAgIIS9oJMHjnoMgwDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNV
-BAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3Js
-ZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3
-aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
-HhcNMTkwMTE0MDcyNzE3WhcNMjAwMTE0MDcyNzE3WjCBjDEkMCIGCgmSJomT8ixk
-AQEMFGNvbS5hbnNqZXIuenNhdmNsb3VkMUIwQAYDVQQDDDlBcHBsZSBEZXZlbG9w
-bWVudCBJT1MgUHVzaCBTZXJ2aWNlczogY29tLmFuc2plci56c2F2Y2xvdWQxEzAR
-BgNVBAsMCjc3Mk41SFhBUjIxCzAJBgNVBAYTAkNOMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAxVcdPjJE7jqqFezK6Ws/hIgTb3npC62l7QTyOWFoi7pt
-Kz4QQaarV1oy7+vaTY1wi8BdSL5zi9puINXuBU50efj2b7Ev2elMSKFma2v96k8s
-t/fEX7x1bANjUjqZFY9A2rcoYpnTzsbBvw3UT2ljDw7W0KqvoYecmqhvzs2qcaxk
-54uCQOzY/4eKSwnWzDh/UmsQYKTm+PJfOXwV2T1ZiOzkntMkrW/olZpHbkWUY5WF
-LM7teMc+ubTxPLwqs7oe0gVGi2qaVPApnTkPyMys+wxK03o7bUXF2y/ZizO19Ww+
-TXV4zGhhDmYymkSs7VhgqgSbrg+f6vZRQ9y+0HVUKwIDAQABo4IB5TCCAeEwCQYD
-VR0TBAIwADAfBgNVHSMEGDAWgBSIJxcJqbYYYIvs67r2R1nFUlSjtzCCAQ8GA1Ud
-IASCAQYwggECMIH/BgkqhkiG92NkBQEwgfEwgcMGCCsGAQUFBwICMIG2DIGzUmVs
-aWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBh
-Y2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMg
-YW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNl
-cnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wKQYIKwYBBQUHAgEWHWh0
-dHA6Ly93d3cuYXBwbGUuY29tL2FwcGxlY2EvMBMGA1UdJQQMMAoGCCsGAQUFBwMC
-ME0GA1UdHwRGMEQwQqBAoD6GPGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2Nl
-cnRpZmljYXRpb25hdXRob3JpdHkvd3dkcmNhLmNybDAdBgNVHQ4EFgQU7vqIfJhY
-/X2MkfUzZ09zSbuq5O4wCwYDVR0PBAQDAgeAMBAGCiqGSIb3Y2QGAwEEAgUAMA0G
-CSqGSIb3DQEBBQUAA4IBAQBhSQLhTOPAIubqCWQo/PE6Ibo8SIp7nJs3scn9SyxZ
-xJCZKWHJIsHQc8mlSshgNweWzMLXwHtOuV2P7Gu+4hVC6viUj35HlWuc42WEMD83
-Q9ztnbhHFEO27By0Ogv5j0MslxwkMZ1lQ5B/jdJ7I/IMa0pzmIZ75gcQC79Yur0Y
-EBrjSJhWESpwnP1165GdnfAMsoDRIICFPjH/RwVtcfoFqcujcmGlkDb/fRYI7sUN
-TQWayJWpTpl2kk6fToRWedwVsO+Wo6jesF93HziyoiMGv/ZsBqU97o5tc9yYb283
-FfyCQCIf/myb9lkxhYkwAEFcJiA1EvEIns1YogRlavsL
------END CERTIFICATE-----
-Bag Attributes
-    friendlyName: testAPN
-    localKeyID: EE FA 88 7C 98 58 FD 7D 8C 91 F5 33 67 4F 73 49 BB AA E4 EE 
-Key Attributes: <No Attributes>
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIP1sglTmNa+QCAggA
-MBQGCCqGSIb3DQMHBAiHnz0S7++cqgSCBMj6aT2tgl720pDqknYzMRi7vIFXd6FU
-QSy6j2EjiEq9JPFaSzGLMihGtNyMeJ6zDclzEJoP4+PC8tYBd5Ij2dVU0k0EEksv
-gEix8deokPB9npaksC/OP61vz9G40deMJ8URqKB9cpo6+zTpdO7ful0yAB++fLez
-y7qzAnd6T1MgJiMs7yBmQNq33UghOG9KYT+NTMT6hQ1CJ2l4iB6HJhW0X/sjo0qJ
-l9c+ccZqBwjG9DsXTi+Vx+hRDB6xD+E8aD8kwcrOuV5u+geRLQSnBFSc97CWi3aX
-OY+wClWEPwYwrx5g5tTXN3Ee07ydMzLA8CY6BjnsfCECtDNA5B//aGx6+BB1Zbd+
-YFg7xW7FC0VK1uq/gpsGsfRX6y+d1xkNw0UMaPRaxeRiqXuaK7iHHYWz6LHybw1m
-46ypsOEnLK+tHSv1XZgAGgM3zIE8YH1Ls6Hmtbzsnp1gSTzBmwBqx3WaCUi7sqYN
-oSUrQhBDoxXzwwCQ78KHqdme8V6uec9NRtv236y65jt1ycRSNVkZDrwUcqf8PpXG
-U7D0E6OmRLRTd91VTvTJOjLvCwYKhqt5VkF0kicSf2fE35Meejz2WW2KUKDCTyER
-Pd0Xi+u94JxXREdhDH0GVQSbfbJ5ieA5u0G7pYcDX8qOzIunECoxtzM03NVAhuAE
-s3axsDsBSQuSI3zMwxa4JusFdkL318GBeya9aQnojVfyu5oUCADZx69+/dn3Zru0
-0SLFEhYdSNJ+cqlrkNgyQk+dxO927hoZjjye59lWNcVzySdO0Qz7R6HmO+30DbG2
-5PIFdMzhNGfYMGOrIJWTpLM0XtBSCmTpOWfhf2CdpFhz9xLtq1lXOVMlGswUnoG1
-s3WENfQdiMESLmO1a07GYTT+b357TUqNUQzvC+kbbTYtk0GDP14a9obMsRvWhkNx
-+uB04AYcFrnbzjn1d8wRnUmVbOjLFZ1T3FS0XgvHv3MsLRbFegBtHklGYwZJyG0i
-kDn3fixTMDQClRx7r+dh3Vj+bgent4n+h6Rs0XYpbufdqOUGoIKgG9PsgHtJESbc
-ii3TPMAtRGwRuya2G9Yka11k56PLg6oimJUZrh6CmYkRhBzbYnPFZBo03xgmM8lT
-8mkKmPCxCfDTq6ar844z7mv73dMcfshvkcurlsuf5SEIu8iFFD0D1FajP0fWbHQW
-weLz5LZBknMEfx1M0OqYLBIQGCjUlXuuXZ/U+Y0/lE0SV/ctciaM2IbWX7ZMVFzU
-Pd8ebPpKdoyhKw1RZjFTJNuPL6g8NBUcWZvfDIUuHTtuLy6Pz1P+jVPmQAtZicqi
-hu/MWSfjJS28MQyr8IhiHpx5WSGcCQMWZ4i9eHDwt88VYgwphB/15954LCOefHzK
-h2HpR+q6frB3sZ241a6sIFXLFSFeq6HzRxVWPi8UfPkwhXFC/XXhBDX0Om9lllXr
-GTGbFcKmZHM32V3Xznec2yUVSvf8TX3GrEjLXRHAG7U7URxzsnk7cqXURftHmMpZ
-O/xl9EXT4B1hfPGggcxY03hxrnCNbVn/K1CKEfx3zh2dZHYDZtZo0BosWl/RTaCY
-S9bPNneMaJz551uzHcA1vGPWqbQeJvykVP2hO1G/c6YTSCQIpw9YgGrXSL/k3vjI
-LIc=
------END ENCRYPTED PRIVATE KEY-----

+ 0 - 155
Ansjer/test/util/email_log.py

@@ -1,155 +0,0 @@
-# coding=utf-8
-# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +
-#        ┏┓   ┏┓+ +
-#    ┏┛┻━━━┛┻┓ + +
-#    ┃       ┃  
-#    ┃   ━   ┃ ++ + + +
-#    ████━████ ┃+
-#    ┃       ┃ +
-#    ┃   ┻   ┃
-#    ┃       ┃ + +
-#    ┗━┓   ┏━┛
-#      ┃   ┃           
-#      ┃   ┃ + + + +
-#      ┃   ┃    Codes are far away from bugs with the animal protecting   
-#      ┃   ┃ +     神兽保佑,代码无bug  
-#      ┃   ┃
-#      ┃   ┃  +         
-#      ┃    ┗━━━┓ + +
-#      ┃        ┣┓
-#      ┃        ┏┛
-#      ┗┓┓┏━┳┓┏┛ + + + +
-#       ┃┫┫ ┃┫┫
-#       ┗┻┛ ┗┻┛+ + + +
-# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +"""
-"""
-"""
-import base64
-import hashlib
-import time
-
-import datetime
-
-
-def getTimeDict(times):
-    time_dict = []
-    t = 0
-    for x in range(24):
-        if x < 10:
-            x = '0' + str(x)
-        else:
-            x = str(x)
-        # a = times.strftime("%Y-%m-%d") + " " + x
-        a = times.strftime("%Y%m%d") + x
-        time_dict.append(a)
-        t += 1
-    return time_dict
-
-
-def md5s(text, isBackByte=False):
-    """md5加密函数"""
-    md5 = hashlib.md5()
-    if isinstance(text, bytes):
-        md5.update(text)
-    else:
-        md5.update(text.encode('utf-8'))
-
-    if isBackByte:
-        # 返回二进制的加密结果
-        return md5.digest()
-
-        # 返回十六进制的机密结果
-    return md5.hexdigest()
-
-
-def base64_encode(text, isBytes=False):
-    """进行base64编码处理"""
-    if isBytes:
-        return base64.b64encode(text)
-    return base64.b64encode(bytes(text, encoding="utf-8"))
-
-
-def get_timestamp10():
-    """获取当前时间长度为10位长度的时间戳"""
-    return int(time.time())
-
-
-def get_sign_url_content(to_tt):
-    # url = '13.56.141.156:81'
-    # url = '35.176.238.187:81'
-    url = '111.230.145.16:81'
-    secret = 'ansjer';  # 密钥--对应#st的哈希格式为 secret+url+e,e为时间戳单位s,url为请求地址  secure_link_md5 xiaozhong.com$uri$arg_e;
-    # path = '/hls/5553.mp4/index.m3u8'  # 下载文件
-    # path = '/L59KVYDAEPHR1T6M111A_0/555666.mp4'  # 下载文件
-    path = '/Relay' + to_tt + '.txt'  # 下载文件
-    # path = '/444.mp4'  # 下载文件
-    # 下载到期时间,time是当前时间,300表示300秒,也就是说从现在到300秒之内文件不过期
-    expire = get_timestamp10() + 3600;
-    res = md5s(str(secret) + str(path) + str(expire), True)
-    md5_str = str(base64_encode(res, True))
-    md5_str = md5_str.replace('b\'', '').replace('\'', '').replace('+', '-').replace('/', '_').replace('=', '')
-    sig_uri = 'http://' + url + path + '?' + 'st=' + str(md5_str) + '&e=' + str(expire)
-    # print(sig_uri)
-    return {
-        'url' : sig_uri,
-        'time' :to_tt
-    }
-
-
-to_date = datetime.datetime.now() - datetime.timedelta(days=1)
-to_list = getTimeDict(to_date)
-
-HTML_DATA = ''
-# sign_uri_list = []
-for tt in to_list:
-    su = get_sign_url_content(to_tt=tt)
-    HTML_DATA +='<p><span><a href="{{url}}" target="_Blank">{{time}}<a></span></p>'.replace("{{time}}",su['time']).replace("{{url}}",su['url'])
-    # sign_uri_list.append(su)
-# print(sign_uri_list)
-# print(HTML_DATA)
-print(type(HTML_DATA))
-from boto3.session import Session
-import traceback
-
-AWS_ACCESS_ID = 'AKIAJKPU23EU5QWHFPKQ'
-AWS_ACCESS_SECRET = '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'
-AWS_ACCESS_REGION = 'us-east-1'
-COMPANY_EMAIL = 'user_server@nsst.com'
-session = Session(
-    aws_access_key_id=AWS_ACCESS_ID,
-    aws_secret_access_key=AWS_ACCESS_SECRET,
-    region_name=AWS_ACCESS_REGION,
-)
-conn = session.client('ses')
-
-try:
-    response = conn.send_email(
-        # 发送人
-        Source=COMPANY_EMAIL,
-        Destination={
-            # 收件人
-            'ToAddresses': [COMPANY_EMAIL]
-            # 'ToAddresses': ['1758730877@qq.com']
-        },
-        Message={
-            # 标题
-            'Subject': {
-                # 'Data': '英国P2P日志文件',
-                'Data': '中国P2P日志文件',
-                # 'Data': '美国P2P日志文件',
-                'Charset': 'utf-8'
-            },
-            'Body': {
-                'Html': {
-                    'Charset': 'UTF-8',
-                    'Data': HTML_DATA,
-                },
-            }
-        },
-    )
-except Exception as e:
-    errorInfo = traceback.format_exc()
-    print(errorInfo)
-else:
-    print('yes')
-

+ 0 - 71
Ansjer/test/util/encryDownLoad.py

@@ -1,71 +0,0 @@
-# coding=utf-8
-# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +
-#        ┏┓   ┏┓+ +
-#    ┏┛┻━━━┛┻┓ + +
-#    ┃       ┃  
-#    ┃   ━   ┃ ++ + + +
-#    ████━████ ┃+
-#    ┃       ┃ +
-#    ┃   ┻   ┃
-#    ┃       ┃ + +
-#    ┗━┓   ┏━┛
-#      ┃   ┃           
-#      ┃   ┃ + + + +
-#      ┃   ┃    Codes are far away from bugs with the animal protecting   
-#      ┃   ┃ +     神兽保佑,代码无bug  
-#      ┃   ┃
-#      ┃   ┃  +         
-#      ┃    ┗━━━┓ + +
-#      ┃        ┣┓
-#      ┃        ┏┛
-#      ┗┓┓┏━┳┓┏┛ + + + +
-#       ┃┫┫ ┃┫┫
-#       ┗┻┛ ┗┻┛+ + + +
-# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +"""
-"""
-"""
-import base64
-import hashlib
-import time
-
-def md5(text, isBackByte=False):
-    """md5加密函数"""
-    md5 = hashlib.md5()
-    if isinstance(text, bytes):
-        md5.update(text)
-    else:
-        md5.update(text.encode('utf-8'))
-
-    if isBackByte:
-        # 返回二进制的加密结果
-        return md5.digest()
-
-        # 返回十六进制的机密结果
-    return md5.hexdigest()
-
-
-def base64_encode(text, isBytes=False):
-    """进行base64编码处理"""
-    if isBytes:
-        return base64.b64encode(text)
-    return base64.b64encode(bytes(text, encoding="utf-8"))
-
-
-def get_timestamp10():
-    """获取当前时间长度为10位长度的时间戳"""
-    return int(time.time())
-
-
-secret = 'ansjer';  # 密钥--对应#st的哈希格式为 secret+url+e,e为时间戳单位s,url为请求地址  secure_link_md5 xiaozhong.com$uri$arg_e;
-# path = '/hls/5553.mp4/index.m3u8'  # 下载文件
-# path = '/L59KVYDAEPHR1T6M111A_0/555666.mp4'  # 下载文件
-path = '/5553.mp4'  # 下载文件
-# path = '/444.mp4'  # 下载文件
-# 下载到期时间,time是当前时间,300表示300秒,也就是说从现在到300秒之内文件不过期
-expire = get_timestamp10() + 3600;
-res = md5(str(secret) + str(path) + str(expire), True)
-md5 = str(base64_encode(res, True))
-md5 = md5.replace('b\'', '').replace('\'', '').replace('+', '-').replace('/', '_').replace('=', '')
-
-# print('生成代相关认证签名的地址:','http://52.8.197.107/444.mp4.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire))
-print('io:','http://52.8.197.107/5553.mp4.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire))

+ 0 - 30
Ansjer/test/util/spnsss.py

@@ -1,30 +0,0 @@
-#coding=utf-8
-import threading
-from time import sleep,ctime
-
-def sing():
-    for i in range(3):
-        print("正在唱歌...%d"%i)
-        sleep(1)
-
-def dance():
-    for i in range(3):
-        print("正在跳舞...%d"%i)
-        sleep(1)
-
-if __name__ == '__main__':
-    print('---开始---:%s'%ctime())
-
-    t1 = threading.Thread(target=sing)
-    t2 = threading.Thread(target=dance)
-
-    t1.start()
-    t2.start()
-
-    while True:
-        length = len(threading.enumerate())
-        print('当前运行的线程数为:%d'%length)
-        if length<=1:
-            break
-
-        sleep(0.5)

+ 1 - 1
Controller/Test.py

@@ -39,7 +39,7 @@ class Test(View):
         # if you set the logging level to "DEBUG",it will show the debug logging.
         _jpush.set_logging("DEBUG")
         # push.audience = jpush.all_
-        push.audience = jpush.registration_id([devToken])
+        push.audience = jpush.registration_id(devToken)
         push.notification = jpush.notification(alert="hello python jpush api")
         push.platform = jpush.all_
         try: