Переглянути джерело

欧洲服使用环境变量配置

locky 2 тижнів тому
батько
коміт
54d941df52

+ 2 - 1
.gitignore

@@ -16,4 +16,5 @@
 /sdk_install
 /DB/mydata4vipday2.ipdb
 /__pycache__/*.pyc
-/venv
+/venv
+.env

+ 2 - 2
AnsjerPush/config.py

@@ -11,6 +11,7 @@ from firebase_admin import credentials
 
 # 日志配置
 LOGGER = logging.getLogger('info')
+ERROR_INFO_LOGGER = logging.getLogger('error_info')
 
 # 配置信息
 CONFIG_TEST = 'test'
@@ -68,9 +69,8 @@ OSS_ROLE_ARN = 'acs:ram::1901342792446414:role/stsoss'
 
 # aws api key
 AWS_ARN = ['arn:aws-cn:s3', 'arn:aws:s3']
-AWS_ACCESS_KEY_ID = ['AKIA2MMWBR4D3I4YNHSP', 'AKIA2E67UIMD45Y3HL53']  # 0国内, 1国外
-AWS_SECRET_ACCESS_KEY = ['5Q9LsKwa0Q9IRntwDWDzIgDOdT5zayt4M+qJKmuw', 'ckYLg4Lo9ZXJIcJEAKkzf2rWvs8Xth1FCjqiAqUw']
 
+# 服务器域名
 NGINX_RTMP_STAT = 'http://www.dvema.com/stat'
 SERVER_DOMAIN = 'http://www.dvema.com/'
 SERVER_DOMAIN_SSL = 'https://www.dvema.com/'

+ 23 - 13
AnsjerPush/eur_config/eur_formal_settings.py

@@ -1,6 +1,18 @@
 import os
+from AnsjerPush.config import BASE_DIR
+import environ
+
+env = environ.Env(
+    DEBUG=(bool, False)
+)
+# 读取 .env 文件
+environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
+
+ACCESS_KEY_ID = env('ACCESS_KEY_ID', default='')
+SECRET_ACCESS_KEY = env('SECRET_ACCESS_KEY', default='')
+AWS_ACCESS_KEY_ID = env.list('AWS_ACCESS_KEY_ID', default=[])
+AWS_SECRET_ACCESS_KEY = env.list('AWS_SECRET_ACCESS_KEY', default=[])
 
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 SECRET_KEY = '$2hf5g$a%_^kk0-l25l$!o5)yc=dvtnfpc8(+$rh4fq4twa_xx'
 DEBUG = True
 ALLOWED_HOSTS = ["*"]
@@ -50,19 +62,17 @@ TEMPLATES = [
 
 WSGI_APPLICATION = 'AnsjerPush.wsgi.application'
 
+# 业务数据库
+DATABASE_DATA = env('DATABASE_DATA')
+SERVER_HOST = env('SERVER_HOST')
+DATABASES_USER = env('DATABASES_USER')
+DATABASES_PASS = env('DATABASES_PASS')
 
-# Database
-# https://docs.djangoproject.com/en/2.1/ref/settings/#databases
-# formal
-DATABASE_DATA = 'Ansjer81'
-SERVER_HOST = '10.80.1.118'
-DATABASES_USER = 'root'
-DATABASES_PASS = '47vo87fikT19cekVoSq1..'
-
-DATABASE_DATA2 = 'Ansjer81'
-SERVER_HOST2 = '10.80.1.216'
-DATABASES_USER2 = 'root'
-DATABASES_PASS2 = '5T0LVKsXwHFkYNTTa5UG..'
+# 推送数据库
+DATABASE_DATA2 = env('DATABASE_DATA2')
+SERVER_HOST2 = env('SERVER_HOST2')
+DATABASES_USER2 = env('DATABASES_USER2')
+DATABASES_PASS2 = env('DATABASES_PASS2')
 
 DATABASES = {
     'default': {

+ 0 - 2
AnsjerPush/test_config/test_config.py

@@ -14,8 +14,6 @@ AWS相关
 # aws api key
 AWS_ARN_S3 = 'arn:aws:s3'
 REGION_NAME = 'us-east-1'
-ACCESS_KEY_ID = 'AKIA2E67UIMD45Y3HL53'
-SECRET_ACCESS_KEY = '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'
 
 # 存储桶
 PUSH_BUCKET = 'foreignpush'                                # 推送存储桶

+ 48 - 14
AnsjerPush/test_config/test_settings.py

@@ -1,7 +1,18 @@
 import os
+from AnsjerPush.config import BASE_DIR
+import environ
+
+env = environ.Env(
+    DEBUG=(bool, False)
+)
+# 读取 .env 文件
+environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
+
+ACCESS_KEY_ID = env('ACCESS_KEY_ID', default='')
+SECRET_ACCESS_KEY = env('SECRET_ACCESS_KEY', default='')
+AWS_ACCESS_KEY_ID = env.list('AWS_ACCESS_KEY_ID', default=[])
+AWS_SECRET_ACCESS_KEY = env.list('AWS_SECRET_ACCESS_KEY', default=[])
 
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-print()
 SECRET_KEY = '$2hf5g$a%_^kk0-l25l$!o5)yc=dvtnfpc8(+$rh4fq4twa_xx'
 DEBUG = True
 ALLOWED_HOSTS = ["*"]
@@ -27,7 +38,7 @@ MIDDLEWARE = [
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
-    # 'MiddleWare.requestRecord.RequestRecordMiddleware',  # 记录请求信息
+    'MiddleWare.requestRecord.RequestRecordMiddleware',  # 记录请求信息
 ]
 
 ROOT_URLCONF = 'AnsjerPush.urls'
@@ -52,16 +63,22 @@ TEMPLATES = [
 WSGI_APPLICATION = 'AnsjerPush.wsgi.application'
 
 # 业务数据库
-DATABASE_DATA = 'ansjer_server_test'
-SERVER_HOST = '124.70.222.33'
-DATABASES_USER = 'root'
-DATABASES_PASS = 'Ansjer123'
+DATABASE_DATA = env('DATABASE_DATA')
+SERVER_HOST = env('SERVER_HOST')
+DATABASES_USER = env('DATABASES_USER')
+DATABASES_PASS = env('DATABASES_PASS')
 
 # 推送数据库
-DATABASE_DATA2 = 'ansjer_push_test'
-SERVER_HOST2 = '124.70.222.33'
-DATABASES_USER2 = 'root'
-DATABASES_PASS2 = 'Ansjer123'
+DATABASE_DATA2 = env('DATABASE_DATA2')
+SERVER_HOST2 = env('SERVER_HOST2')
+DATABASES_USER2 = env('DATABASES_USER2')
+DATABASES_PASS2 = env('DATABASES_PASS2')
+
+# 袋鼠妈妈数据库
+DATABASE_DATA4 = env('DATABASE_DATA4')
+SERVER_HOST4 = env('SERVER_HOST4')
+DATABASES_USER4 = env('DATABASES_USER4')
+DATABASES_PASS4 = env('DATABASES_PASS4')
 
 DATABASES = {
     'default': {
@@ -89,12 +106,29 @@ DATABASES = {
                     'use_unicode': True,
                     'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
                     }
-    }
+    },
+    'mysql04': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': DATABASE_DATA4,
+        'USER': DATABASES_USER4,
+        'PASSWORD': DATABASES_PASS4,
+        'HOST': SERVER_HOST4,
+        'PORT': '3306',
+        'AUTOCOMMIT': True,
+        'CONN_MAX_AGE': 60,
+        'OPTIONS': {
+            'charset': 'utf8mb4',
+            'use_unicode': True,
+            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"
+        }
+    },
 }
+
 DATABASE_ROUTERS = ['AnsjerPush.database_router.DatabaseAppsRouter']
 DATABASE_APPS_MAPPING = {
     'db1': 'default',
     'db2': 'mysql02',
+    'db3': 'mysql04'
 }
 
 # Password validation
@@ -206,9 +240,9 @@ LOGGING = {
         },
         'time': {
             'level': 'INFO',
-            'class': 'logging.handlers.RotatingFileHandler',
+            'class': 'concurrent_log_handler.ConcurrentRotatingFileHandler',
             'filename': BASE_DIR + '/static/log/time/info.log',
-            'backupCount': 10,
+            'backupCount': 3,
             'maxBytes': 1024 * 1024 * 2 * 1024,  # 2G
             'formatter': 'standard',
             'encoding': 'utf-8',

+ 0 - 2
AnsjerPush/us_config/formal_config.py

@@ -13,8 +13,6 @@ AWS相关
 # aws api key
 AWS_ARN_S3 = 'arn:aws:s3'
 REGION_NAME = 'us-east-1'
-ACCESS_KEY_ID = 'AKIA2E67UIMD45Y3HL53'
-SECRET_ACCESS_KEY = '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'
 
 # 存储桶
 PUSH_BUCKET = 'foreignpush'                                # 推送存储桶

+ 4 - 1
Controller/AiController.py

@@ -21,7 +21,7 @@ from django.views.generic.base import View
 from pyfcm import FCMNotification
 
 from AnsjerPush.config import AI_IDENTIFICATION_TAGS_DICT, CONFIG_US, CONFIG_EUR
-from AnsjerPush.config import AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, APNS_MODE, APNS_CONFIG, BASE_DIR, \
+from AnsjerPush.config import APNS_MODE, APNS_CONFIG, BASE_DIR, \
     JPUSH_CONFIG, FCM_CONFIG
 from AnsjerPush.config import CONFIG_INFO
 from AnsjerPush.config import PUSH_BUCKET
@@ -40,6 +40,9 @@ from Service.DevicePushService import DevicePushService
 from Service.EquipmentInfoService import EquipmentInfoService
 from Object.NovaImageTagObject import NovaImageTagObject
 from datetime import datetime
+from django.conf import settings
+AWS_ACCESS_KEY_ID = settings.AWS_ACCESS_KEY_ID
+AWS_SECRET_ACCESS_KEY = settings.AWS_SECRET_ACCESS_KEY
 
 TIME_LOGGER = logging.getLogger('time')
 # 1. 声明一个全局变量,用于存放创建好的实例

+ 4 - 1
Object/S3Email.py

@@ -4,8 +4,11 @@ from email.mime.multipart import MIMEMultipart
 from email.mime.text import MIMEText
 
 import boto3
+from django.conf import settings
+AWS_ACCESS_KEY_ID = settings.AWS_ACCESS_KEY_ID
+AWS_SECRET_ACCESS_KEY = settings.AWS_SECRET_ACCESS_KEY
 
-AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY = 'AKIA2E67UIMD45Y3HL53', 'ckYLg4Lo9ZXJIcJEAKkzf2rWvs8Xth1FCjqiAqUw'
+AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY = AWS_ACCESS_KEY_ID[1], AWS_SECRET_ACCESS_KEY[1]
 
 
 class S3Email:

+ 5 - 3
Service/CommonService.py

@@ -13,9 +13,11 @@ from django.core import serializers
 from django.utils import timezone
 from pyipip import IPIPDatabase
 
-from AnsjerPush.config import BASE_DIR, ACCESS_KEY_ID, SECRET_ACCESS_KEY, REGION_NAME, PUSH_BUCKET, SYS_EVENT_TYPE_LIST, \
-    DATA_PUSH_EVENT_TYPE_LIST
-from Object.enums.EventTypeEnum import EventTypeEnumObj
+from AnsjerPush.config import BASE_DIR, REGION_NAME, PUSH_BUCKET, SYS_EVENT_TYPE_LIST, DATA_PUSH_EVENT_TYPE_LIST
+from Model.models import iotdeviceInfoModel, Device_User
+from django.conf import settings
+ACCESS_KEY_ID = settings.ACCESS_KEY_ID
+SECRET_ACCESS_KEY = settings.SECRET_ACCESS_KEY
 
 
 # 复用性且公用较高封装代码在这

+ 6 - 2
Service/DevicePushService.py

@@ -21,8 +21,8 @@ from obs import ObsClient
 
 from AnsjerPush.Config.aiConfig import DEVICE_EVENT_TYPE, ALGORITHM_COMBO_TYPES
 from AnsjerPush.MessageConfig import EVENT_CONFIGS, DEFAULT_TEXTS, MSG_CONFIG
-from AnsjerPush.config import CONFIG_INFO, CONFIG_CN, MULTI_CHANNEL_TYPE_LIST, SYS_EVENT_TYPE_LIST, AWS_ACCESS_KEY_ID, \
-    AWS_SECRET_ACCESS_KEY, EVENT_DICT, EVENT_DICT_CN, CONFIG_TEST, HUAWEICLOUD_AK, HUAWEICLOUD_SK, \
+from AnsjerPush.config import CONFIG_INFO, CONFIG_CN, MULTI_CHANNEL_TYPE_LIST, SYS_EVENT_TYPE_LIST, \
+    EVENT_DICT, EVENT_DICT_CN, CONFIG_TEST, HUAWEICLOUD_AK, HUAWEICLOUD_SK, \
     HUAWEICLOUD_OBS_SERVER, HUAWEICLOUD_PUSH_BUKET, OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, JPUSH_UID_LIST, \
     DATA_PUSH_EVENT_TYPE_LIST, PRIMARY_USERS_PUSH_EVENT_TYPE_LIST
 from AnsjerPush.config import XMPUSH_CONFIG, OPPOPUSH_CONFIG, XM_PUSH_CHANNEL_ID, XM_PUSH_CHANNEL_DICT
@@ -43,6 +43,10 @@ from django.db import close_old_connections
 
 from Service.VSeesHuaweiPushService.VseesHuaweiPushObject import VseesHuaweiPushObject
 
+from django.conf import settings
+AWS_ACCESS_KEY_ID = settings.AWS_ACCESS_KEY_ID
+AWS_SECRET_ACCESS_KEY = settings.AWS_SECRET_ACCESS_KEY
+
 LOGGING = logging.getLogger('info')
 TIME_LOGGER = logging.getLogger('time')
 ERROR_INFO_LOGGER = logging.getLogger('error_info')

+ 3 - 2
requirements.txt

@@ -96,6 +96,7 @@ uritemplate==4.1.1
 urllib3==1.26.0
 wcwidth==0.2.13
 zipp==3.18.1
-oci~=2.125.2
 esdk-obs-python==3.24.6
-concurrent-log-handler==0.9.25
+concurrent-log-handler==0.9.25
+oci==2.125.2
+django-environ==0.11.2