|
@@ -29,6 +29,10 @@ from Object.LogUtil import LogUtil
|
|
|
from Object.RedisObject import RedisObject
|
|
|
from Object.UidTokenObject import UidTokenObject
|
|
|
from Service.CommonService import CommonService
|
|
|
+import boto3
|
|
|
+from AnsjerPush.config import AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
|
|
|
+import botocore
|
|
|
+from botocore import client
|
|
|
|
|
|
'''
|
|
|
http://push.dvema.com/notify/push?etk=Y2lTRXhMTjBWS01sWlpURTVJU0ZWTlJ6RXhNVUU9T3o=&n_time=1526845794&channel=1&event_type=704&is_st=0
|
|
@@ -56,6 +60,10 @@ class NotificationView(View):
|
|
|
event_type = request_dict.get('event_type', None)
|
|
|
is_st = request_dict.get('is_st', None)
|
|
|
company_secrete = request_dict.get('company_secrete', None)
|
|
|
+ region = request_dict.get('region', None)
|
|
|
+ if not region:
|
|
|
+ return JsonResponse(status=200, data={'code': 404, 'msg': 'region is not exist'})
|
|
|
+ region = int(region)
|
|
|
# print("aaa")
|
|
|
# return JsonResponse(0,safe=False)
|
|
|
if not all([channel, n_time]):
|
|
@@ -189,8 +197,22 @@ class NotificationView(View):
|
|
|
redisObj.set_data(key=pkey, val=1, expire=10)
|
|
|
else:
|
|
|
redisObj.set_data(key=pkey, val=1, expire=60)
|
|
|
- auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
|
|
|
- bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
|
|
|
+ # auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
|
|
|
+ # bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
|
|
|
+ aws_s3_guonei = boto3.client(
|
|
|
+ 's3',
|
|
|
+ aws_access_key_id=AWS_ACCESS_KEY_ID[0],
|
|
|
+ aws_secret_access_key=AWS_SECRET_ACCESS_KEY[0],
|
|
|
+ config=botocore.client.Config(signature_version='s3v4'),
|
|
|
+ region_name='cn-northwest-1'
|
|
|
+ )
|
|
|
+ aws_s3_guowai = boto3.client(
|
|
|
+ 's3',
|
|
|
+ aws_access_key_id=AWS_ACCESS_KEY_ID[1],
|
|
|
+ aws_secret_access_key=AWS_SECRET_ACCESS_KEY[1],
|
|
|
+ config=botocore.client.Config(signature_version='s3v4'),
|
|
|
+ region_name='us-east-1'
|
|
|
+ )
|
|
|
kwag_args = {
|
|
|
'uid': uid,
|
|
|
'channel': channel,
|
|
@@ -301,9 +323,28 @@ class NotificationView(View):
|
|
|
elif is_st == '1':
|
|
|
print("is_st=1")
|
|
|
# Endpoint以杭州为例,其它Region请按实际情况填写。
|
|
|
- obj = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
|
|
|
+ # obj = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
|
|
|
# 设置此签名URL在60秒内有效。
|
|
|
- url = bucket.sign_url('PUT', obj, 7200)
|
|
|
+ # url = bucket.sign_url('PUT', obj, 7200)
|
|
|
+ thumbspng = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
|
|
|
+ if region == 2: # 2:国内
|
|
|
+ response_url = aws_s3_guonei.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'push',
|
|
|
+ 'Key': thumbspng
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ else: # 1:国外
|
|
|
+ response_url = aws_s3_guowai.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'foreignpush',
|
|
|
+ 'Key': thumbspng
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
for up in redis_list:
|
|
|
up['do_apns_code'] = do_apns_code
|
|
|
up['do_fcm_code'] = do_fcm_code
|
|
@@ -319,10 +360,12 @@ class NotificationView(View):
|
|
|
del up['uid_set__detect_group']
|
|
|
# 不是正式服务器
|
|
|
if SERVER_TYPE != "Ansjer.formal_settings":
|
|
|
- res_data = {'code': 0, 'img_push': url, 'msg': 'success', 're_list': redis_list}
|
|
|
+ # res_data = {'code': 0, 'img_push': url, 'msg': 'success', 're_list': redis_list}
|
|
|
+ res_data = {'code': 0, 'img_push': response_url, 'msg': 'success', 're_list': redis_list}
|
|
|
else:
|
|
|
# 是正式服务器的时候
|
|
|
- res_data = {'code': 0, 'img_push': url, 'msg': 'success'}
|
|
|
+ # res_data = {'code': 0, 'img_push': url, 'msg': 'success'}
|
|
|
+ res_data = {'code': 0, 'img_push': response_url, 'msg': 'success'}
|
|
|
return JsonResponse(status=200, data=res_data)
|
|
|
|
|
|
elif is_st == '3':
|
|
@@ -334,8 +377,31 @@ class NotificationView(View):
|
|
|
obj = '{uid}/{channel}/{filename}_{st}.jpeg'. \
|
|
|
format(uid=uid, channel=channel, filename=n_time, st=i)
|
|
|
# 设置此签名URL在60秒内有效。
|
|
|
- url = bucket.sign_url('PUT', obj, 7200)
|
|
|
- img_url_list.append(url)
|
|
|
+ # url = bucket.sign_url('PUT', obj, 7200)
|
|
|
+
|
|
|
+ thumbspng = '{uid}/{channel}/{filename}_{st}.jpeg'. \
|
|
|
+ format(uid=uid, channel=channel, filename=n_time, st=i)
|
|
|
+ if region == 2: # 2:国内
|
|
|
+ response_url = aws_s3_guonei.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'push',
|
|
|
+ 'Key': thumbspng
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ else: # 1:国外
|
|
|
+ response_url = aws_s3_guowai.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'foreignpush',
|
|
|
+ 'Key': thumbspng
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ img_url_list.append(response_url)
|
|
|
+
|
|
|
+ # img_url_list.append(url)
|
|
|
|
|
|
for up in redis_list:
|
|
|
up['do_apns_code'] = do_apns_code
|
|
@@ -543,6 +609,8 @@ class PushNotificationView(View):
|
|
|
n_time = request_dict.get('n_time', None)
|
|
|
event_type = request_dict.get('event_type', None)
|
|
|
is_st = request_dict.get('is_st', None)
|
|
|
+ region = request_dict.get('region', '2')
|
|
|
+ region = int(region)
|
|
|
eto = ETkObject(etk)
|
|
|
uid = eto.uid
|
|
|
if len(uid) == 20:
|
|
@@ -576,27 +644,84 @@ class PushNotificationView(View):
|
|
|
# 修改redis数据,并设置过期时间为10分钟
|
|
|
if redis_list:
|
|
|
redisObj.set_data(key=ykey, val=str(redis_list), expire=600)
|
|
|
- auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
|
|
|
- bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
|
|
|
+ # auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
|
|
|
+ # bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
|
|
|
+ aws_s3_guonei = boto3.client(
|
|
|
+ 's3',
|
|
|
+ aws_access_key_id=AWS_ACCESS_KEY_ID[0],
|
|
|
+ aws_secret_access_key=AWS_SECRET_ACCESS_KEY[0],
|
|
|
+ config=botocore.client.Config(signature_version='s3v4'),
|
|
|
+ region_name='cn-northwest-1'
|
|
|
+ )
|
|
|
+ aws_s3_guowai = boto3.client(
|
|
|
+ 's3',
|
|
|
+ aws_access_key_id=AWS_ACCESS_KEY_ID[1],
|
|
|
+ aws_secret_access_key=AWS_SECRET_ACCESS_KEY[1],
|
|
|
+ config=botocore.client.Config(signature_version='s3v4'),
|
|
|
+ region_name='us-east-1'
|
|
|
+ )
|
|
|
self.do_bulk_create_info(redis_list, n_time, channel, event_type, is_st, uid)
|
|
|
if is_st == '0' or is_st == '2':
|
|
|
return JsonResponse(status=200, data={'code': 0, 'msg': 'success44444444444444444'})
|
|
|
elif is_st == '1':
|
|
|
# Endpoint以杭州为例,其它Region请按实际情况填写。
|
|
|
- obj = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
|
|
|
+ # obj = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
|
|
|
# 设置此签名URL在60秒内有效。
|
|
|
- url = bucket.sign_url('PUT', obj, 7200)
|
|
|
- res_data = {'code': 0, 'img_push': url, 'msg': 'success'}
|
|
|
+ # url = bucket.sign_url('PUT', obj, 7200)
|
|
|
+ thumbspng = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
|
|
|
+ if region == 2: # 2:国内
|
|
|
+ response_url = aws_s3_guonei.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'push',
|
|
|
+ 'Key': thumbspng
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ else: # 1:国外
|
|
|
+ response_url = aws_s3_guowai.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'foreignpush',
|
|
|
+ 'Key': thumbspng
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ # res_data = {'code': 0, 'img_push': url, 'msg': 'success'}
|
|
|
+ res_data = {'code': 0, 'img_push': response_url, 'msg': 'success'}
|
|
|
return JsonResponse(status=200, data=res_data)
|
|
|
elif is_st == '3':
|
|
|
# 人形检测带动图
|
|
|
img_url_list = []
|
|
|
for i in range(int(is_st)):
|
|
|
- obj = '{uid}/{channel}/{filename}_{st}.jpeg'. \
|
|
|
- format(uid=uid, channel=channel, filename=n_time, st=i)
|
|
|
+ # obj = '{uid}/{channel}/{filename}_{st}.jpeg'. \
|
|
|
+ # format(uid=uid, channel=channel, filename=n_time, st=i)
|
|
|
# 设置此签名URL在60秒内有效。
|
|
|
- url = bucket.sign_url('PUT', obj, 7200)
|
|
|
- img_url_list.append(url)
|
|
|
+ # url = bucket.sign_url('PUT', obj, 7200)
|
|
|
+
|
|
|
+ thumbspng = '{uid}/{channel}/{filename}_{st}.jpeg'. \
|
|
|
+ format(uid=uid, channel=channel, filename=n_time, st=i)
|
|
|
+ if region == 2: # 2:国内
|
|
|
+ response_url = aws_s3_guonei.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'push',
|
|
|
+ 'Key': thumbspng
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ else: # 1:国外
|
|
|
+ response_url = aws_s3_guowai.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'foreignpush',
|
|
|
+ 'Key': thumbspng
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ img_url_list.append(response_url)
|
|
|
+
|
|
|
+ # img_url_list.append(url)
|
|
|
res_data = {'code': 0, 'img_url_list': img_url_list, 'msg': 'success'}
|
|
|
return JsonResponse(status=200, data=res_data)
|
|
|
else:
|