123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- # 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')
|