Browse Source

更新国内外配置方式

lang 4 years ago
parent
commit
7142520d6d

+ 4 - 0
.gitignore

@@ -15,4 +15,8 @@
 /sdk_install
 /DB/mydata4vipday2.ipdb
 /venv
+/local_manage.py
+/Controller/TestApi.py
 
+/PushModel/
+/SerialModel/

+ 1 - 1
Ansjer/config_formal.py → Ansjer/cn_config/config_formal.py

@@ -117,7 +117,7 @@ APNS_CONFIG = {
 }
 APNS_MODE = 'prod'
 # 根路径
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 SERVER_TYPE = os.environ.get('DJANGO_SETTINGS_MODULE')
 
 TUTK_PUSH_DOMAIN = 'http://push.iotcplatform.com/tpns'

+ 38 - 62
Ansjer/local_settings.py → Ansjer/cn_config/formal_settings.py

@@ -1,10 +1,9 @@
 import os
 from Ansjer.config import BASE_DIR
 
-
 SECRET_KEY = 'c7ki2_gkg4#sjfm-u1%$s#&n#szf01f*v69rwv2qsf#-zmm@tl'
-DEBUG = True
-# DEBUG = False
+# DEBUG = True
+DEBUG = False
 ALLOWED_HOSTS = ['*']
 
 INSTALLED_APPS = [
@@ -17,8 +16,6 @@ INSTALLED_APPS = [
     'corsheaders',
     'imagekit',
     'Model',
-    'PushModel',
-    'SerialModel',
 ]
 
 MIDDLEWARE = [
@@ -33,7 +30,7 @@ MIDDLEWARE = [
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
     'django.middleware.security.SecurityMiddleware',
-    # 'django_global_request.middleware.GlobalRequestMiddleware',
+    'django_global_request.middleware.GlobalRequestMiddleware',
 ]
 
 AUTHENTICATION_BACKENDS = (
@@ -42,7 +39,7 @@ AUTHENTICATION_BACKENDS = (
 )
 
 ADDR_URL = []
-ANONYMOUS_USER_ID = -1  # 支持匿名用户
+ANONYMOUS_USER_ID = -1  # 支持匿名用户.
 
 STATIC_URL = '/static/'
 
@@ -59,7 +56,7 @@ TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
         # 'DIRS': [BASE_DIR + '/static/templates', ],
-        'DIRS': [BASE_DIR + '/templates'],
+        'DIRS': [BASE_DIR + '/templates', ],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
@@ -72,26 +69,19 @@ TEMPLATES = [
     },
 ]
 
-WSGI_APPLICATION = 'Ansjer.local_wsgi.application'
+WSGI_APPLICATION = 'Ansjer.cn_config.formal_wsgi.application'
 
-# 服务器类型
-#业务数据库
-DATABASE_DATA = 'ansjertest'
-SERVER_HOST = '127.0.0.1'
-DATABASES_USER = 'root'
-DATABASES_PASS = 'root'
 
-#推送数据库
-DATABASE_DATA2 = 'ansjerpush'
-SERVER_HOST2 = '127.0.0.1'
-DATABASES_USER2 = 'root'
-DATABASES_PASS2 = 'root'
+# 服务器类型
+DATABASE_DATA = 'Ansjer81'
+SERVER_HOST = 'business-server.cvp7gfpnmziz.rds.cn-northwest-1.amazonaws.com.cn'
+DATABASES_USER = 'azrds'
+DATABASES_PASS = 'UKv78ezQhiGMmSef5U5s'
 
-#序列号公共数据库
-DATABASE_DATA3 = 'serial'
-SERVER_HOST3 = '127.0.0.1'
-DATABASES_USER3 = 'root'
-DATABASES_PASS3 = 'root'
+DATABASE_DATA2 = 'Ansjer81'
+SERVER_HOST2 = 'ansjerpush.clraczw4p0yj.us-west-1.rds.amazonaws.com'
+DATABASES_USER2 = 'azrds'
+DATABASES_PASS2 = 'azrds.x.x'
 
 DATABASES = {
     'default': {
@@ -113,25 +103,16 @@ DATABASES = {
         'PORT': '3306',
         'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
         'AUTOCOMMIT': True
-    },
-    'mysql03': {
-        'ENGINE': 'django.db.backends.mysql',
-        'NAME': DATABASE_DATA3,
-        'USER': DATABASES_USER3,
-        'PASSWORD': DATABASES_PASS3,
-        'HOST': SERVER_HOST3,
-        'PORT': '3306',
-        'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
-        'AUTOCOMMIT': True
-    },
+    }
 }
 DATABASE_ROUTERS = ['Ansjer.database_router.DatabaseAppsRouter']
 DATABASE_APPS_MAPPING = {
     'Model': 'default',
-    'PushModel': 'mysql02',
-    'SerialModel': 'mysql03',
+    'db2': 'mysql02',
 }
 
+
+
 AUTH_PASSWORD_VALIDATORS = [
     {
         'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
@@ -206,7 +187,6 @@ EMAIL_HOST_PASSWORD = 'cjk1234'  # 授权码
 EMAIL_SUBJECT_PREFIX = 'website'  # 为邮件标题的前缀,默认是'[django]'
 EMAIL_USE_TLS = True  # 开启安全链接
 DEFAULT_FROM_EMAIL = SERVER_EMAIL = EMAIL_HOST_USER  # 设置发件人
-
 LOGGING = {
     'version': 1,
     'disable_existing_loggers': True,
@@ -218,9 +198,7 @@ LOGGING = {
         'standard': {
             'format': '[%(asctime)s] [%(filename)s:%(lineno)d] [%(module)s:%(funcName)s] '
                       '[%(levelname)s]- %(message)s'},
-        'simple': {  # 简单格式
-            'format': '%(levelname)s %(message)s'
-        },
+
     },
     'filters': {
     },
@@ -232,27 +210,25 @@ LOGGING = {
         },
         'default': {
             'level': 'ERROR',
-            'class': 'logging.handlers.RotatingFileHandler',
-            'filename': BASE_DIR + '/static/log/error.log',
-            'maxBytes': 1024 * 1024 * 5,  # 5 MB
-            'backupCount': 5,
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': BASE_DIR + '/static/log/error/error.log',
+            'backupCount': 30,
+            'when': 'D',
             'formatter': 'error_format',
         },
         'console': {
-            # 'level': 'ERROR',
-            'level': 'DEBUG',
+            'level': 'ERROR',
             'class': 'logging.StreamHandler',
             'formatter': 'error_format'
         },
-        # 输出info日志
         'info': {
             'level': 'INFO',
-            'class': 'logging.handlers.RotatingFileHandler',
-            'filename': BASE_DIR + '/static/log/info.log',
-            'maxBytes': 1024 * 1024 * 5,
-            'backupCount': 5,
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': BASE_DIR + '/static/log/info/info.log',
+            'backupCount': 30,
+            'when': 'D',
             'formatter': 'standard',
-            'encoding': 'utf-8',  # 设置默认编码
+            'encoding': 'utf-8',
         },
     },
     'loggers': {
@@ -260,19 +236,19 @@ LOGGING = {
             'handlers': ['default', 'console'],
             # 'handlers': ['mail_admins','default','console'],
             # 'level': 'ERROR',
-            'level': 'DEBUG',
-            'propagate': True
+            'level': 'ERROR',
+            'propagate': False
         },
         # log 调用时需要当作参数传入
-        'log': {
-            'handlers': ['info', 'console', 'default'],
-            'level': 'INFO',
-            'propagate': True
-        },
+        'info': {
+            'handlers': ['info'],
+            'level':'INFO',
+            'propagate': False
+        }
         # 'django.db.backends': {
         #     'handlers': ['console'],
         #     'propagate': True,
         #     'level': 'DEBUG',
         # },
     }
-}
+}

+ 1 - 1
Ansjer/formal_wsgi.py → Ansjer/cn_config/formal_wsgi.py

@@ -11,6 +11,6 @@ import os
 
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.formal_settings")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.cn_config.formal_settings")
 
 application = get_wsgi_application()

+ 12 - 6
Ansjer/config.py

@@ -57,6 +57,7 @@ AuthCode_Expire = 600
 RTMP_PUSH_URL = 'http://13.56.215.252:8091/hls'
 # 根路径
 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+ADDR_URL = []
 # uid token key
 UID_TOKEN_KEY = 'c+565*j@%^'
 
@@ -75,12 +76,17 @@ AWS_SECRET_ACCESS_KEY = ['aI9gxcAKPmiGgPy9axrtFKzjYGbvpuytEX4xWweL','ckYLg4Lo9ZX
 AWS_ARN = ['arn:aws-cn:s3','arn:aws:s3']
 
 # 不同环境配置
-if SERVER_TYPE == 'Ansjer.local_settings':
-    from Ansjer.config_local import *
-elif SERVER_TYPE == 'Ansjer.test_settings':
-    from Ansjer.config_test import *
-elif SERVER_TYPE == 'Ansjer.formal_settings':
-    from Ansjer.config_formal import *
+#美国
+if SERVER_TYPE == 'Ansjer.us_config.local_settings':
+    from Ansjer.us_config.config_local import *
+elif SERVER_TYPE == 'Ansjer.us_config.test_settings':
+    from Ansjer.us_config.config_test import *
+elif SERVER_TYPE == 'Ansjer.us_config.formal_settings':
+    from Ansjer.us_config.config_formal import *
+
+#国内
+elif SERVER_TYPE == 'Ansjer.cn_config.formal_settings':
+    from Ansjer.cn_config.config_formal import *
 
 
 DEVICE_TYPE = {

+ 123 - 0
Ansjer/us_config/config_formal.py

@@ -0,0 +1,123 @@
+#!/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/10/16 9:45
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: config_formal.py
+@Contact: chanjunkai@163.com
+"""
+import os
+
+NGINX_RTMP_STAT = 'http://www.dvema.com/stat'
+SERVER_DOMAIN_SSL = 'https://www.dvema.com/'
+SERVER_DOMAIN = 'http://www.dvema.com/'
+DOMAIN_HOST = 'www.dvema.com'
+SERVER_HOST = 'localhost'
+# PAYPAL_CRD = {
+#     "mode": "live",  # sandbox or live
+#     "client_id": "AdSRd6WBn-qLl9OiQHQuNYTDFSx0ZX0RUttqa58au8bPzoGYQUrt8bc6591RmH8_pEAIPijdvVYSVXyI",
+#     "client_secret": "ENT-J08N3Fw0B0uAokg4RukljAwO9hFHPf8whE6-Dwd8oBWJO8AWMgpdTKpfB1pOy89t4bsFEzMWDowm"
+# }
+PAYPAL_CRD = {
+    "mode": "sandbox",  # sandbox or live
+    "client_id": "AVLoQVq3xHZ6FrF4mxHwlCPgVBAw4Fw5RtMkuxmYd23SkUTIY643n2g3KdK-Al8wV05I28lza5uoQbAA",
+    "client_secret": "EO8kRc8yioDk0i2Qq-QMcVFfwkmyMJorTvBSLDTnxDJJ_wb9VoM_0jkUY9iEng2Flp1ze8wQOGpH5nB2"
+}
+
+DETECT_PUSH_DOMAIN = 'http://push.dvema.com/'
+DETECT_PUSH_DOMAINS = 'https://push.dvema.com/'
+DETECT_PUSH_DOMAIN_JIUAN = 'http://jiuan.push.dvema.com/'
+DETECT_PUSH_DOMAINS_JIUAN = 'https://jiuan.push.dvema.com/'
+# 数据库dyanamo品牌日志数据库
+USER_BRAND = 'user_brand'
+USER_BRAND_ALL = 'user_brand_all'
+
+# type =2
+JPUSH_CONFIG = {
+    'com.ansjer.accloud_ab': {
+        'Key': 'f0dc047e5e53fd14199de5b0',
+        'Secret': 'aa7f7db33e9f0a7f3871aa1c'},
+    'com.ansjer.adcloud_ab': {
+        'Key': '76d97b535185114985608234',
+        'Secret': 'c9a92b301043cc9c52778692'},
+    'com.ansjer.zccloud_ab': {
+        'Key': 'd9924f56d3cc7c6017965130',
+        'Secret': '869d832d126a232f158b5987'},
+    'com.ansjer.loocamccloud_ab': {
+        'Key': 'd1cc44797b4642b0e05304fe',
+        'Secret': 'c3e8b4ca8c576de61401e56a'},
+    'com.ansjer.loocamdcloud_ab': {
+        'Key': '76d97b535185114985608234',
+        'Secret': 'c9a92b301043cc9c52778692'},
+    'com.ansjer.zccloud_a': {
+        'Key': '57de2a80d68bf270fd6bdf5a',
+        'Secret': '3d354eb6a0b49c2610decf42'},
+    'com.ansjer.accloud_a': {
+        'Key': 'ff95ee685f49c0dc4013347b',
+        'Secret': 'de2c20959f5516fdeeafe78e'},
+    'com.ansjer.adcloud_a': {
+        'Key': '2e47eb1aee9b164460df3668',
+        'Secret': 'b9137d8d684bc248f1809b6d'},
+    'com.ansjer.loocamccloud_a': {
+        'Key': '23c9213215c7ca0ec945629b',
+        'Secret': '81e4b1e859cc8387e2e6c431'},
+    'com.ansjer.loocamdcloud_a': {
+        'Key': '1dbdd60a16e9892d6f68a073',
+        'Secret': '80a97690e7e043109059b403'},
+    'com.ansjer.customizedb_a': {
+        'Key': '9d79630aa49adfa291fe2568',
+        'Secret': '4d8ff52f88136561875a0212'},
+    'com.ansjer.customizedd_a': {
+        'Key': '8fc4f495685bde53341ee25d',
+        'Secret': 'f1da11fa466509fa2670fb66',
+    }
+}
+# type =1
+FCM_CONFIG = {
+    'com.ansjer.zccloud_a': 'AAAAb9YP3rk:APA91bHu8u-CTpcd0g6lKPo0WNVqCi8jZub1cPPbSAY9AucT1HxlF65ZDUko9iG8q2ch17bwu9YWHpK1xI1gHSRXCslLvZlXEmHZC0AG3JKg15XuUvlFKACIajUFV-pOeGRT8tM6-31I',
+    'com.ansjer.loocamccloud_a': 'AAAAb9YP3rk:APA91bFCgd-kbVmpK4EVpfdHH_PJZQCYTkOGnTZdIuBWEz2r7aMRsJYHOH3sB-rwcbaRWgnufTyjX9nGQxb6KxQbWVk4ah_H-M3IqGh6Mb60WQQAuR33V6g_Jes5pGL6ViuIxGHqVMaR',
+    'com.ansjer.loocamdcloud_a': 'AAAAb9YP3rk:APA91bGw2I2KMD4i-5T7nZO_wB8kuAOuqgyqe5rxmY-W5qkpYEx9IL2IfmC_qf6B_xOyjIDDSjckvMo-RauN__SEoxvAkis7042GRkoKpw7cjZ_H8lC-d50PC0GclPzccrOGFusyKbFY',
+    'com.ansjer.customizedb_a': 'AAAAb9YP3rk:APA91bE7kI4vcm-9h_CJNFlOZfc-xwP4Btn6AnjOrwoKV6fgYN7fdarkO76sYxVZiAbDnxsFfOJyP7vQfwyan6mdjuyD5iHdt_XgO22VqniC0vA1V4GJiCS8Tp7LxIX8JVKZl9I_Powt',
+    'com.ansjer.customizeda_a': 'AAAAb9YP3rk:APA91bF0HzizVWDc6dKzobY9fsaKDK4veqkOZehDXshVXs8pEEvNWjR_YWbhP60wsRYCHCal8fWN5cECVOWNMMzDsfU88Ty2AUl8S5FtZsmeDTkoGntQOswBr8Ln7Fm_LAp1VqTf9CpM',
+    'com.ansjer.customizedd_a': 'AAAAb9YP3rk:APA91bHkxOozJWBrlv3eNT0PgwosYENI9aM4Zuzd418cX-iKkpa1zFNC5MkNDKApx1KH4fhmAfaJ6IMRZ0nj5GIxCpstDYCaZWwgC7-etqfSxG5JAq8LOwJx0o_1tUZqwjIic8ztsg0o',
+    'com.ansjer.adcloud_a': 'AAAAb9YP3rk:APA91bFm06w8b9OKQ0gz0iaWFuRqRIkvgAz6z7Gp3dBU_X-LNGJQd1hc1QR2W7QzBglF8SHtERA45a2lbdLRa5qv7hxfd6W_sJLBK7dA8jklsOQBvy505oUzTwMKWy4TwH-exps9KrhO',
+    'com.ansjer.accloud_a': 'AAAAb9YP3rk:APA91bFm06w8b9OKQ0gz0iaWFuRqRIkvgAz6z7Gp3dBU_X-LNGJQd1hc1QR2W7QzBglF8SHtERA45a2lbdLRa5qv7hxfd6W_sJLBK7dA8jklsOQBvy505oUzTwMKWy4TwH-exps9KrhO',
+    'com.ansjer.zccloud_ab': 'AAAAb9YP3rk:APA91bHu8u-CTpcd0g6lKPo0WNVqCi8jZub1cPPbSAY9AucT1HxlF65ZDUko9iG8q2ch17bwu9YWHpK1xI1gHSRXCslLvZlXEmHZC0AG3JKg15XuUvlFKACIajUFV-pOeGRT8tM6-31I',
+}
+APNS_CONFIG = {
+    'com.ansjer.loocamccloud': {
+        'pem_path': 'Ansjer/file/apns_pem/lcc-dev.pem',
+    },
+    'com.ansjer.zosidcloud': {
+        'pem_path': 'Ansjer/file/apns_pem/zosidcloud-dev.pem',
+    },
+    'com.ansjer.customizedb': {
+        'pem_path': 'Ansjer/file/apns_pem/customizedb-dev.pem',
+    },
+    'com.ansjer.customizeda': {
+        'pem_path': 'Ansjer/file/apns_pem/customizeda-dev.pem',
+    },
+    'com.ansjer.zccloud': {
+        'pem_path': 'Ansjer/file/apns_pem/zccloud-dev.pem',
+    },
+    'com.ansjer.accloud': {
+        'pem_path': 'Ansjer/file/apns_pem/accloud-dev.pem',
+    },
+    'com.ansjer.customizede': {
+        'pem_path': 'Ansjer/file/apns_pem/ZhouShi-dev.pem',
+    },
+    'com.ansjer.customizedc': {
+        'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
+    }
+}
+APNS_MODE = 'prod'
+# 根路径
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+SERVER_TYPE = os.environ.get('DJANGO_SETTINGS_MODULE')
+
+TUTK_PUSH_DOMAIN = 'http://push.iotcplatform.com/tpns'

+ 3 - 0
Ansjer/config_local.py → Ansjer/us_config/config_local.py

@@ -11,6 +11,8 @@
 @file: config_local.py
 @Contact: chanjunkai@163.com
 """
+import os
+
 # token的secret
 OAUTH_ACCESS_TOKEN_SECRET = 'local_a+jbgnw%@1%zy^=@dn62%'
 OAUTH_REFRESH_TOKEN_SECRET = 'local_r+jbgnw%@1%zy^=@dn62%'
@@ -60,5 +62,6 @@ APNS_CONFIG = {
         'pem_path': 'Ansjer/file/apns_pem/ZhouShi-dev.pem',
     },
 }
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 APNS_MODE = 'dev'
 TUTK_PUSH_DOMAIN = 'http://push.iotcplatform.com/tpns'

+ 1 - 1
Ansjer/config_test.py → Ansjer/us_config/config_test.py

@@ -127,7 +127,7 @@ APNS_CONFIG = {
     }
 }
 # 根路径
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 APNS_MODE = 'dev'
 SERVER_TYPE = os.environ.get('DJANGO_SETTINGS_MODULE')
 

+ 2 - 2
Ansjer/formal_settings.py → Ansjer/us_config/formal_settings.py

@@ -69,7 +69,7 @@ TEMPLATES = [
     },
 ]
 
-WSGI_APPLICATION = 'Ansjer.formal_wsgi.application'
+WSGI_APPLICATION = 'Ansjer.us_config.formal_wsgi.application'
 
 
 # 服务器类型
@@ -137,7 +137,7 @@ USE_TZ = True
 # 跨域增加忽略
 CORS_ALLOW_CREDENTIALS = True
 CORS_ORIGIN_ALLOW_ALL = True
-CORS_ORIGIN_WHITELIST = ('*')
+# CORS_ORIGIN_WHITELIST = ('*')
 
 CORS_ALLOW_METHODS = (
     'DELETE',

+ 16 - 0
Ansjer/us_config/formal_wsgi.py

@@ -0,0 +1,16 @@
+"""
+WSGI config for Ansjer project.
+
+It exposes the WSGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/
+"""
+
+import os
+
+from django.core.wsgi import get_wsgi_application
+
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.us_config.formal_settings")
+
+application = get_wsgi_application()

+ 457 - 0
Ansjer/us_config/local_settings.py

@@ -0,0 +1,457 @@
+import os
+from Ansjer.config import BASE_DIR
+
+
+SECRET_KEY = 'c7ki2_gkg4#sjfm-u1%$s#&n#szf01f*v69rwv2qsf#-zmm@tl'
+DEBUG = True
+# DEBUG = False
+ALLOWED_HOSTS = ['*']
+
+INSTALLED_APPS = [
+    'django.contrib.admin',
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.messages',
+    'django.contrib.staticfiles',
+    'corsheaders',
+    'imagekit',
+    'Model',
+]
+
+MIDDLEWARE = [
+    'corsheaders.middleware.CorsMiddleware',
+    'Service.middleware.StatisticsUrlMiddleware',
+    'django.middleware.security.SecurityMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    # 'django.middleware.csrf.CsrfViewMiddleware',
+    'corsheaders.middleware.CorsPostCsrfMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
+    'django.middleware.security.SecurityMiddleware',
+    # 'django_global_request.middleware.GlobalRequestMiddleware',
+]
+
+AUTHENTICATION_BACKENDS = (
+    'django.contrib.auth.backends.ModelBackend',  # django default backend
+    'guardian.backends.ObjectPermissionBackend',
+)
+
+ADDR_URL = []
+ANONYMOUS_USER_ID = -1  # 支持匿名用户
+
+STATIC_URL = '/static/'
+STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)
+
+# 上传路径根目录
+MEDIA_ROOT = os.path.join(BASE_DIR, 'static/Upgrate')
+# 在浏览器上访问该上传文件的url的前缀
+MEDIA_URL = '/static/Upgrate/'
+ROOT_URLCONF = 'Ansjer.urls'
+LOGIN_URL = '/account/login'
+AUTH_USER_MODEL = 'Model.Device_User'  # 自定义Model
+APPEND_SLASH = False
+
+TEMPLATES = [
+    {
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
+        # 'DIRS': [BASE_DIR + '/static/templates', ],
+        'DIRS': [BASE_DIR + '/templates'],
+        'APP_DIRS': True,
+        'OPTIONS': {
+            'context_processors': [
+                'django.template.context_processors.debug',
+                'django.template.context_processors.request',
+                'django.contrib.auth.context_processors.auth',
+                'django.contrib.messages.context_processors.messages',
+            ],
+        },
+    },
+]
+
+WSGI_APPLICATION = 'Ansjer.us_config.local_wsgi.application'
+
+# 服务器类型
+DATABASE_DATA = 'ansjertest'
+SERVER_HOST = '127.0.0.1'
+DATABASES_USER = 'root'
+DATABASES_PASS = '123456'
+
+# DATABASE_DATA2 = 'ansjerpush'
+# SERVER_HOST2 = '127.0.0.1'
+# DATABASES_USER2 = 'root'
+# DATABASES_PASS2 = '123456'
+
+
+
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': DATABASE_DATA,
+        'USER': DATABASES_USER,
+        'PASSWORD': DATABASES_PASS,
+        'HOST': SERVER_HOST,
+        'PORT': '3306',
+        'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
+        'AUTOCOMMIT': True
+    },
+    # 'mysql02': {
+    #     'ENGINE': 'django.db.backends.mysql',
+    #     'NAME': DATABASE_DATA2,
+    #     'USER': DATABASES_USER2,
+    #     'PASSWORD': DATABASES_PASS2,
+    #     'HOST': SERVER_HOST2,
+    #     'PORT': '3306',
+    #     'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
+    #     'AUTOCOMMIT': True
+    # }
+}
+DATABASE_ROUTERS = ['Ansjer.database_router.DatabaseAppsRouter']
+DATABASE_APPS_MAPPING = {
+    'Model': 'default',
+    'db2': 'mysql02',
+}
+
+AUTH_PASSWORD_VALIDATORS = [
+    {
+        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+    },
+]
+
+LANGUAGE_CODE = 'en-us'
+TIME_ZONE = 'Asia/Shanghai'
+# TIME_ZONE = 'UTC'
+USE_I18N = True
+USE_L10N = True
+USE_TZ = True
+
+# 跨域增加忽略
+CORS_ALLOW_CREDENTIALS = True
+CORS_ORIGIN_ALLOW_ALL = True
+# CORS_ORIGIN_WHITELIST = ('*')
+
+CORS_ALLOW_METHODS = (
+    'DELETE',
+    'GET',
+    'OPTIONS',
+    'PATCH',
+    'POST',
+    'PUT',
+    'VIEW',
+)
+
+CORS_ALLOW_HEADERS = (
+    'XMLHttpRequest',
+    'X_FILENAME',
+    'accept',
+    'accept-encoding',
+    'authorization',
+    'content-type',
+    'dnt',
+    'origin',
+    'user-agent',
+    'x-csrftoken',
+    'x-requested-with',
+    'Pragma',
+)
+
+#########################################
+'''
+增加错误信息推送到管理员邮箱
+'''
+# 管理员邮箱
+ADMINS = (
+    ('admin', 'chanjunkai@163.com'),
+    ('admin', '1379072853@qq.com'),
+)
+
+# 非空链接,却发生404错误,发送通知MANAGERS
+SEND_BROKEN_LINK_EMAILS = True
+MANAGERS = ADMINS
+
+# Email设置
+EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
+EMAIL_HOST = 'smtp.163.com'  # QQ邮箱SMTP服务器(邮箱需要开通SMTP服务)
+EMAIL_PORT = 25  # QQ邮箱SMTP服务端口
+EMAIL_HOST_USER = 'chanjunkai@163.com'  # 我的邮箱帐号
+EMAIL_HOST_PASSWORD = 'cjk1234'  # 授权码
+EMAIL_SUBJECT_PREFIX = 'website'  # 为邮件标题的前缀,默认是'[django]'
+EMAIL_USE_TLS = True  # 开启安全链接
+DEFAULT_FROM_EMAIL = SERVER_EMAIL = EMAIL_HOST_USER  # 设置发件人
+
+INSTALLED_APPS = [
+    'django.contrib.admin',
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.messages',
+    'django.contrib.staticfiles',
+    'corsheaders',
+    'imagekit',
+    'Model',
+    'PushModel',
+    'SerialModel',
+]
+
+MIDDLEWARE = [
+    'corsheaders.middleware.CorsMiddleware',
+    'Service.middleware.StatisticsUrlMiddleware',
+    'django.middleware.security.SecurityMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    # 'django.middleware.csrf.CsrfViewMiddleware',
+    'corsheaders.middleware.CorsPostCsrfMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
+    'django.middleware.security.SecurityMiddleware',
+    # 'django_global_request.middleware.GlobalRequestMiddleware',
+]
+
+AUTHENTICATION_BACKENDS = (
+    'django.contrib.auth.backends.ModelBackend',  # django default backend
+    'guardian.backends.ObjectPermissionBackend',
+)
+
+ADDR_URL = []
+ANONYMOUS_USER_ID = -1  # 支持匿名用户
+
+STATIC_URL = '/static/'
+
+# 上传路径根目录
+MEDIA_ROOT = os.path.join(BASE_DIR, 'static/Upgrate')
+# 在浏览器上访问该上传文件的url的前缀
+MEDIA_URL = '/static/Upgrate/'
+ROOT_URLCONF = 'Ansjer.urls'
+LOGIN_URL = '/account/login'
+AUTH_USER_MODEL = 'Model.Device_User'  # 自定义Model
+APPEND_SLASH = False
+
+TEMPLATES = [
+    {
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
+        # 'DIRS': [BASE_DIR + '/static/templates', ],
+        'DIRS': [BASE_DIR + '/templates'],
+        'APP_DIRS': True,
+        'OPTIONS': {
+            'context_processors': [
+                'django.template.context_processors.debug',
+                'django.template.context_processors.request',
+                'django.contrib.auth.context_processors.auth',
+                'django.contrib.messages.context_processors.messages',
+            ],
+        },
+    },
+]
+
+WSGI_APPLICATION = 'Ansjer.local_wsgi.application'
+
+# 服务器类型
+#业务数据库
+DATABASE_DATA = 'ansjertest'
+SERVER_HOST = '127.0.0.1'
+DATABASES_USER = 'root'
+DATABASES_PASS = 'root'
+
+#推送数据库
+DATABASE_DATA2 = 'ansjerpush'
+SERVER_HOST2 = '127.0.0.1'
+DATABASES_USER2 = 'root'
+DATABASES_PASS2 = 'root'
+
+#序列号公共数据库
+DATABASE_DATA3 = 'serial'
+SERVER_HOST3 = '127.0.0.1'
+DATABASES_USER3 = 'root'
+DATABASES_PASS3 = 'root'
+
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': DATABASE_DATA,
+        'USER': DATABASES_USER,
+        'PASSWORD': DATABASES_PASS,
+        'HOST': SERVER_HOST,
+        'PORT': '3306',
+        'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
+        'AUTOCOMMIT': True
+    },
+    'mysql02': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': DATABASE_DATA2,
+        'USER': DATABASES_USER2,
+        'PASSWORD': DATABASES_PASS2,
+        'HOST': SERVER_HOST2,
+        'PORT': '3306',
+        'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
+        'AUTOCOMMIT': True
+    },
+    'mysql03': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': DATABASE_DATA3,
+        'USER': DATABASES_USER3,
+        'PASSWORD': DATABASES_PASS3,
+        'HOST': SERVER_HOST3,
+        'PORT': '3306',
+        'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
+        'AUTOCOMMIT': True
+    },
+}
+DATABASE_ROUTERS = ['Ansjer.database_router.DatabaseAppsRouter']
+DATABASE_APPS_MAPPING = {
+    'Model': 'default',
+    'PushModel': 'mysql02',
+    'SerialModel': 'mysql03',
+}
+
+AUTH_PASSWORD_VALIDATORS = [
+    {
+        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+    },
+]
+
+LANGUAGE_CODE = 'en-us'
+TIME_ZONE = 'Asia/Shanghai'
+# TIME_ZONE = 'UTC'
+USE_I18N = True
+USE_L10N = True
+USE_TZ = True
+
+# 跨域增加忽略
+CORS_ALLOW_CREDENTIALS = True
+CORS_ORIGIN_ALLOW_ALL = True
+# CORS_ORIGIN_WHITELIST = ('*')
+
+CORS_ALLOW_METHODS = (
+    'DELETE',
+    'GET',
+    'OPTIONS',
+    'PATCH',
+    'POST',
+    'PUT',
+    'VIEW',
+)
+
+CORS_ALLOW_HEADERS = (
+    'XMLHttpRequest',
+    'X_FILENAME',
+    'accept',
+    'accept-encoding',
+    'authorization',
+    'content-type',
+    'dnt',
+    'origin',
+    'user-agent',
+    'x-csrftoken',
+    'x-requested-with',
+    'Pragma',
+)
+
+#########################################
+'''
+增加错误信息推送到管理员邮箱
+'''
+# 管理员邮箱
+ADMINS = (
+    ('admin', 'sonalh@foxmail.com'),
+)
+
+# 非空链接,却发生404错误,发送通知MANAGERS
+SEND_BROKEN_LINK_EMAILS = True
+MANAGERS = ADMINS
+
+# Email设置
+EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
+EMAIL_HOST = 'smtp.163.com'  # QQ邮箱SMTP服务器(邮箱需要开通SMTP服务)
+EMAIL_PORT = 25  # QQ邮箱SMTP服务端口
+EMAIL_HOST_USER = 'chanjunkai@163.com'  # 我的邮箱帐号
+EMAIL_HOST_PASSWORD = 'cjk1234'  # 授权码
+EMAIL_SUBJECT_PREFIX = 'website'  # 为邮件标题的前缀,默认是'[django]'
+EMAIL_USE_TLS = True  # 开启安全链接
+DEFAULT_FROM_EMAIL = SERVER_EMAIL = EMAIL_HOST_USER  # 设置发件人
+
+LOGGING = {
+    'version': 1,
+    'disable_existing_loggers': True,
+    'formatters': {
+        'error_format': {
+            # 'format': '{"asctime":"%(asctime)s","thread":"%(threadName)s:%(thread)d","errorline":"%(lineno)d","errorlevel":"%(levelname)s","errorcontent":"%(message)s"}'
+            'format': '%(asctime)s %(threadName)s %(thread)d %(lineno)d %(levelname)s %(message)s'
+        },
+        'standard': {
+            'format': '[%(asctime)s] [%(filename)s:%(lineno)d] [%(module)s:%(funcName)s] '
+                      '[%(levelname)s]- %(message)s'},
+
+    },
+    'filters': {
+    },
+    'handlers': {
+        'mail_admins': {
+            'level': 'ERROR',
+            'class': 'django.utils.log.AdminEmailHandler',
+            'include_html': True,
+        },
+        'default': {
+            'level': 'ERROR',
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': BASE_DIR + '/static/log/error/error.log',
+            'backupCount': 30,
+            'when': 'D',
+            'formatter': 'error_format',
+        },
+        'console': {
+            'level': 'ERROR',
+            'class': 'logging.StreamHandler',
+            'formatter': 'error_format'
+        },
+        'info': {
+            'level': 'INFO',
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': BASE_DIR + '/static/log/info/info.log',
+            'backupCount': 30,
+            'when': 'D',
+            'formatter': 'standard',
+            'encoding': 'utf-8',
+        },
+    },
+    'loggers': {
+        'django': {
+            'handlers': ['default', 'console'],
+            # 'handlers': ['mail_admins','default','console'],
+            # 'level': 'ERROR',
+            'level': 'ERROR',
+            'propagate': False
+        },
+        # log 调用时需要当作参数传入
+        'info': {
+            'handlers': ['info'],
+            'level':'INFO',
+            'propagate': False
+        }
+        # 'django.db.backends': {
+        #     'handlers': ['console'],
+        #     'propagate': True,
+        #     'level': 'DEBUG',
+        # },
+    }
+}

+ 1 - 1
Ansjer/local_wsgi.py → Ansjer/us_config/local_wsgi.py

@@ -11,6 +11,6 @@ import os
 
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.local_settings")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.us_config.local_settings")
 
 application = get_wsgi_application()

+ 1 - 1
Ansjer/test_settings.py → Ansjer/us_config/test_settings.py

@@ -72,7 +72,7 @@ TEMPLATES = [
     },
 ]
 
-WSGI_APPLICATION = 'Ansjer.test_wsgi.application'
+WSGI_APPLICATION = 'Ansjer.us_config.test_wsgi.application'
 
 
 # 服务器类型

+ 1 - 1
Ansjer/test_wsgi.py → Ansjer/us_config/test_wsgi.py

@@ -11,6 +11,6 @@ import os
 
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.test_settings")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.us_config.test_settings")
 
 application = get_wsgi_application()

+ 5 - 5
Controller/CloudStorage.py

@@ -416,12 +416,12 @@ class CloudStorageView(View):
             region_name=vh_qs[0]["bucket__region"]
         )
         conn = session.client('s3')
-
+        uidToken = TokenObject().encryption(data={'uid': uid})
         for vod in vh_qs:
-            bucket__mold = vod["bucket__mold"]
+            # bucket__mold = vod["bucket__mold"]
             bucket_name = vod["bucket__bucket"]
-            endpoint = vod["bucket__endpoint"]
-            bucket__region = vod["bucket__region"]
+            # endpoint = vod["bucket__endpoint"]
+            # bucket__region = vod["bucket__region"]
             thumbspng = '{uid}/vod{channel}/{time}/Thumb.jpeg'. \
                 format(uid=uid, channel=channel, time=vod['time'])
             response_url = conn.generate_presigned_url(
@@ -434,7 +434,7 @@ class CloudStorageView(View):
             )
             vod_url = '{server_domain}/cloudstorage/signplaym3u8?' \
                       'uid={uid}&channel={channel}&time={time}&sign=tktktktk'. \
-                format(server_domain=SERVER_DOMAIN_SSL, uid=TokenObject().encryption(data={'uid': uid}), channel=channel, time=vod['time'])
+                format(server_domain=SERVER_DOMAIN_SSL, uid=uidToken, channel=channel, time=vod['time'])
             ts_num = int(vod['fg']) & 0xf
             vod_play_list.append({
                 'start_time': vod['time'],

+ 0 - 1
Controller/FAQController.py

@@ -14,7 +14,6 @@ from django.views.generic.base import View
 
 import Ansjer
 from Ansjer.config import BASE_DIR, SERVER_TYPE
-from Ansjer.config_formal import SERVER_DOMAIN
 from Model.models import FAQModel
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject

+ 1 - 1
Controller/LogManager.py

@@ -2,7 +2,7 @@ from Controller import OTAEquipment
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic import TemplateView
 from django.utils.decorators import method_decorator
-from Ansjer import local_settings as api_settings
+from Ansjer import config as api_settings
 from Service.ModelService import ModelService
 import time,os
 from Object.ResponseObject import ResponseObject

+ 1 - 1
Controller/OrderContrller.py

@@ -19,7 +19,7 @@ from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 
-from Ansjer.config_test import PAYPAL_CRD
+from Ansjer.us_config.config_test import PAYPAL_CRD
 from Object.AliPayObject import AliPayObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject

+ 59 - 34
Controller/TestApi.py

@@ -23,7 +23,6 @@ import time
 import urllib
 import datetime
 from Object.AliPayObject import AliPayObject
-import logging
 import boto3
 from boto3.session import Session
 from botocore.exceptions import ClientError
@@ -39,6 +38,7 @@ from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
+from Object.RedisObject import RedisObject
 from django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块
 from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_ARN, SERVER_DOMAIN, PAYPAL_CRD, \
     SERVER_DOMAIN_SSL
@@ -106,9 +106,9 @@ class testView(View):
         elif operation == 'test_upload_s3':
             userID = '158943604783713800138000'
             return self.test_upload_s3(request_dict)
-        elif operation == 'test_request':
+        elif operation == 'rekognition':
             userID = '158943604783713800138000'
-            return self.testRequest(request,request_dict)
+            return self.testRekognition(request,request_dict)
         else:
             return 123
 
@@ -699,48 +699,73 @@ class testView(View):
 
 
     def test_upload_s3(self,request_dict):
-        res = CompanyModel.objects.filter(id=3).delete()
-        exit(res)
-
-        testd = hmac.new('AWS4rf/xnQ3jIgY8bj7Sz4An4KbYct2sq2MbrfmP8rVV'.encode("utf-8"), '20210223'.encode("utf-8"), hashlib.sha256).digest()
-        region_sign = hmac.new(testd, 'cn-northwest-1'.encode("utf-8"), hashlib.sha256).hexdigest()
-        exit(region_sign)
-        kService = sign(kRegion, 's3')
-        kSigning = sign(kService, 'aws4_request')
+        times = '2021-05-24 11:37:04+00:00'
+        test = CommonService.str_to_timestamp(times)
+        exit(test)
+        # redisObject = RedisObject()
+        # res = redisObject.rpush('serial_lock', 'serial_lock')
+        #
+        # exit(res)
+        #
+        # res = CompanyModel.objects.filter(id=3).delete()
+        # exit(res)
+        #
+        # testd = hmac.new('AWS4rf/xnQ3jIgY8bj7Sz4An4KbYct2sq2MbrfmP8rVV'.encode("utf-8"), '20210223'.encode("utf-8"), hashlib.sha256).digest()
+        # region_sign = hmac.new(testd, 'cn-northwest-1'.encode("utf-8"), hashlib.sha256).hexdigest()
+        # exit(region_sign)
+        # kService = sign(kRegion, 's3')
+        # kSigning = sign(kService, 'aws4_request')
 
         # exit(CommonService.getIpIpInfo("120.197.196.156",'CN'))
-        aws_key = "ASIA2MMWBR4DUPTFDTOJ" #【你的 aws_access_key】
-        aws_secret = "tTFZ9wpxFadeufhfaJ1erErv4U1bJ+TS/SJwTptx" #【你的 aws_access_key】
-        aws_session_token = "IQoJb3JpZ2luX2VjEJT//////////wEaDmNuLW5vcnRod2VzdC0xIkYwRAIgenLaMN6NdFji0x18OuaUTPvvtRBAWwjdEYdBTCMh0ywCIEzntAbgRPmwS+YFuNg+F31z60I4J1IoqmrQHR7wmPzVKtsCCML//////////wEQABoMNzEzODE2MTE2OTk5IgyJTmdtNJ319TtNORAqrwLPG6Px0z5CsEQpFt/TCbSSMRtYqBU+x5Ll9hZIuTvg8H+56H02/cr0nSCNiy05z7dSrSWMFoMhVKvHq7as5TRvVXkvMbbYPQuQxxPFr7EswaB+XITeDpdGBI6N7mqnt6h4YJbhk2dNRa2/4Ypr1DuyGnhVV6NxNHA5INtY7apLi3UTcNKwKSQRVzUWZBpoj86wG3j77KOZg18I9P8UWBpA9fpz/Wiv4xrzZSexrUnq5svTLEqMfTYCPBXkxrJBjNrwVjvkBkgeIfQZPz+A5X97p7wXbPf0Jo5aHHRDefbAmBuXYoSfpHjiFWindkcvCaMxQzUiHVLvnN/5SvgQEzN3pLUAAioepRZIZQLaky1aRmYYm1wOCjzgsg9V+GV6gKTE+ipFG/6Nv03Vh++Hv+YwyamJgQY6mgEmxhOhncek0PgQeExx2EXk73olY/6L15eDyHbSWoEKBMTmdlmpYD9Cj3qP4aUUW6UT6V5Tql/s5eBEsYwY+hzgtQiTmd7vjytXxae+dpN9VsWGW4AJ9P+/LgBe6zExUx2MOVst0+hb+dd8bg/qkz7UBYNQAmU+BEoL2Cd7lNXdrv56Gboapo+BosQO49GT8u1k5EheQ9JKHCqv"
+        exit(1123123)
+        aws_key = "ASIA2MMWBR4DXDM36CEN" #【你的 aws_access_key】
+        aws_secret = "qLmvltAthKkD5tGuFP/LE5YEmiD/iVBwuC3PneHm" #【你的 aws_access_key】
+        aws_session_token = "IQoJb3JpZ2luX2VjEFIaDmNuLW5vcnRod2VzdC0xIkgwRgIhAL60RpDvgWluwYehRrb3NgFDgMZYEOzqnwAgz3NH/2jiAiEA2G026WLnK4h38wctp6Wt7jnfJSUdyr7GJ7NKUCU4kKkq8QIIfxAAGgw3MTM4MTYxMTY5OTkiDNKIYzjvazWRomqCeSrOAgGuglgcUw3/QGPBLb1B5WpYU0RXw+UTfS4UIpmXHvJ8wUR6y50H0QxAWv5ADGXDam7gVV+jxcQpB6X9RZgHiDmnpzKO6PrRtevSoh89F519ffumHdoNpRNGA04vh4XcPIfLsaETgDAUFkWY2Ha3OxaDgF8+6R+0OsGNTSTmQO2yr2u3LfsoSVn6+vTLHOq8O5+xVMzFJzVzffJJenB5n2Tm2DiLoCPLZbKrm5i4bHPCb4+e6T9H8G/OqI15k8Tdu4xr6hkObTb2DmTwFcTRYXLy14iU6S+8j59UcBg1LUVz7Ygenoz6kvj0t4SGN8ogShFdZtxFp9yl5hVHzNg8/JiKbm1AI8h1TD4F3zN+va1qrUa3wBUKK8uSOzG7CG4yX42NK6q5bx9B6sI53vWLeBBREgYB4gD7yOOFKjz8MPukVgoWDLKMZJzTqnnAgjAwqpOthQY6mAGHp2YELSBx8McgvRcHmv/Ebp2vhWYZRXOuNrX574ZVAmHsIbzQFkZvEoXOu3uIHY17cqskeJna2lXaSwZDnm0wIDCVHorcN2n1GjEG/JA6CNv2jYBtiG7DzllLzUe0B1OPFQsO7W9ctkSSlA51njWVGHkKiRfml51XXvMzxOV7APllBvglvFgGr2q8FfayNKYtf7VoaBMDYg=="
         session = Session(aws_access_key_id=aws_key,
                           aws_secret_access_key=aws_secret,
                           aws_session_token=aws_session_token,
                           region_name="cn-northwest-1") # 此处根据自己的 s3 地区位置改变
         s3 = session.resource("s3")
         # client = session.client("s3")
-        bucket = "7cdk" # 【你 bucket 的名字】 # 首先需要保.证 s3 上已经存在该存储桶,否则报错
-        upload_data = open("./././static/log/test.log", "rb")
-        upload_key = "XKWZSC5FCJYT19B7111A/test/test6/test.log"
+        bucket = "cn-formal-cs-experience-7day-3month" # 【你 bucket 的名字】 # 首先需要保.证 s3 上已经存在该存储桶,否则报错
+        upload_data = open("./././PushModel/tests.py", "rb")
+        # upload_key = "XKWZSC5FCJYT19B7111A/test/test6/test.log"
+        upload_key = "THY7M84KLDNZ9XE8111A/vod1/info.log"
         file_obj = s3.Bucket(bucket).put_object(Key=upload_key, Body=upload_data)
         print('---------------------')
-        print(file_obj)
-        print(8/0)
-        exit()
-
-
-    def testRequest(self,request,request_dict):
-        ip = CommonService.get_ip_address(request)
-        ipInfo = CommonService.getIpIpInfo(ip,"CN")
-        # print(type(ipInfo))
-        # exit(ipInfo)
-        addr = CommonService.getAddr(ip)
-        dicts = {
-            'ipInfo':ipInfo,
-            'addr':addr,
-        }
-        return HttpResponse(json.dumps(dicts, ensure_ascii=False),
+        exit(file_obj)
+
+
+    def testRekognition(self,request,request_dict):
+        # ip = CommonService.get_ip_address(request)
+        # ipInfo = CommonService.getIpIpInfo(ip,"CN")
+        # # print(type(ipInfo))
+        # # exit(ipInfo)
+        # addr = CommonService.getAddr(ip)
+        # dicts = {
+        #     'ipInfo':ipInfo,
+        #     'addr':addr,
+        # }
+        # return HttpResponse(json.dumps(dicts, ensure_ascii=False),
+        #                     content_type="application/json,charset=utf-8")
+        # client = boto3.client('s3', aws_access_key_id='AKIA2E67UIMD45Y3HL53',aws_secret_access_key='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',region_name='us-east-1')
+        # exit(request.FILES)
+
+
+        files = request.FILES.get('image')
+        labels = int(request_dict.get('labels',5))
+        minConfidence = int(request_dict.get('minConfidence',99))
+        if not files:
+            return HttpResponse('请上传图片!!!!')
+        client = boto3.client('rekognition', aws_access_key_id='AKIA2E67UIMD6JD6TN3J',aws_secret_access_key='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',region_name='us-east-1')
+        # image = open('E:/photo/a615fa40b8c476bab0f6eeb332e62a5a-1000.jpg', "rb")
+        response = client.detect_labels(Image={'Bytes':files.read()},MaxLabels=labels,MinConfidence=minConfidence)
+        # for obj in response['Labels']:
+        #     exit(obj)
+        #     if obj['Name'] == 'Person':
+        #         jsonstr = json.dumps(obj)
+        return HttpResponse(json.dumps(response, ensure_ascii=False),
                             content_type="application/json,charset=utf-8")
 
 
 
-

+ 0 - 0
Ansjer/formal_statistics_push_day_task.py → CrontabTask/formal_statistics_push_day_task.py


+ 0 - 0
Ansjer/formal_statistics_push_month_task.py → CrontabTask/formal_statistics_push_month_task.py


+ 0 - 0
Ansjer/formal_zositech_help_weekly_task.py → CrontabTask/formal_zositech_help_weekly_task.py


+ 0 - 0
Ansjer/test_statistics_push_day_task.py → CrontabTask/test_statistics_push_day_task.py


+ 0 - 0
Ansjer/test_statistics_push_month_task.py → CrontabTask/test_statistics_push_month_task.py


+ 0 - 0
Ansjer/test_zositech_help_weekly_task.py → CrontabTask/test_zositech_help_weekly_task.py


+ 1 - 1
Service/MiscellService.py

@@ -5,7 +5,7 @@ import time
 import requests
 import simplejson as json
 from django.utils.timezone import utc
-from Ansjer import local_settings as api_settings
+from Ansjer import config as api_settings
 
 from Object.TokenObject import TokenObject
 from Object.mongodb import mongodb

+ 1 - 1
Service/middleware.py

@@ -2,7 +2,7 @@
 # -*- coding: utf-8 -*-
 from django.utils.deprecation import MiddlewareMixin
 
-from Ansjer import local_settings as api_settings
+from Ansjer import config as api_settings
 from Ansjer.config import SERVER_TYPE
 
 from Object.ResponseObject import ResponseObject

+ 1 - 1
test_manage.py → cn_formal_manage.py

@@ -3,7 +3,7 @@ import os
 import sys
 
 if __name__ == "__main__":
-    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.test_settings")
+    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.cn_config.formal_settings")
     try:
         from django.core.management import execute_from_command_line
     except ImportError as exc:

+ 1 - 1
local_manage.py

@@ -11,7 +11,7 @@ if __name__ == "__main__":
     #         ip = item[4][0]
     #
     #         print('当前局域网ip地址为:' + ip)
-    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.local_settings")
+    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.us_config.local_settings")
     try:
         from django.core.management import execute_from_command_line
     except ImportError as exc:

+ 15 - 0
us_formal_manage.py

@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+import os
+import sys
+
+if __name__ == "__main__":
+    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.us_config.formal_settings")
+    try:
+        from django.core.management import execute_from_command_line
+    except ImportError as exc:
+        raise ImportError(
+            "Couldn't import Django. Are you sure it's installed and "
+            "available on your PYTHONPATH environment variable? Did you "
+            "forget to activate a virtual environment?"
+        ) from exc
+    execute_from_command_line(sys.argv)

+ 1 - 1
formal_manage.py → us_test_manage.py

@@ -3,7 +3,7 @@ import os
 import sys
 
 if __name__ == "__main__":
-    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.formal_settings")
+    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Ansjer.us_config.test_settings")
     try:
         from django.core.management import execute_from_command_line
     except ImportError as exc: