Files
reverse_image_search_gpu/configs/config.py

89 lines
2.9 KiB
Python

import os
import json
import time
from apscheduler.schedulers.background import BackgroundScheduler
# 以 .env 文件中的环境变量为准, 检查是否存在 .env 文件, 没有则创建
if not os.path.exists('.env'):
print('请输入环境变量参数, 将会写入 .env 文件中')
MYSQL_HOST = input('MYSQL_HOST: ')
MYSQL_PORT = input('MYSQL_PORT: ')
MYSQL_USER = input('MYSQL_USER: ')
MYSQL_PASS = input('MYSQL_PASS: ')
MYSQL_NAME = input('MYSQL_NAME: ')
MILVUS_HOST = input('MILVUS_HOST: ')
MILVUS_PORT = input('MILVUS_PORT: ')
OSS_HOST = input('OSS_HOST: ')
OSS_ACCESS_KEY_ID = input('OSS_ACCESS_KEY_ID: ')
OSS_ACCESS_KEY_SECRET = input('OSS_ACCESS_KEY_SECRET: ')
with open('.env', 'w') as f:
f.write(f'MYSQL_HOST={MYSQL_HOST}\n')
f.write(f'MYSQL_PORT={MYSQL_PORT}\n')
f.write(f'MYSQL_USER={MYSQL_USER}\n')
f.write(f'MYSQL_PASS={MYSQL_PASS}\n')
f.write(f'MYSQL_NAME={MYSQL_NAME}\n')
f.write(f'MILVUS_HOST={MILVUS_HOST}\n')
f.write(f'MILVUS_PORT={MILVUS_PORT}\n')
f.write(f'OSS_HOST={OSS_HOST}\n')
f.write(f'OSS_ACCESS_KEY_ID={OSS_ACCESS_KEY_ID}\n')
f.write(f'OSS_ACCESS_KEY_SECRET={OSS_ACCESS_KEY_SECRET}\n')
# 读取 .env 文件中的环境变量
with open('.env', 'r') as f:
env = f.readlines()
env = list(filter(lambda x: not x.startswith('#') and not x.startswith('\n') and len(x.split('=')) == 2, env))
env = list(map(lambda x: x.replace('\n', '').split('='), env))
env = {k: v for k, v in env}
print(json.dumps(env, indent=4, ensure_ascii=False))
MYSQL_HOST = env.get('MYSQL_HOST', 'localhost')
MYSQL_PORT = int(env.get('MYSQL_PORT', 3306))
MYSQL_USER = env.get('MYSQL_USER')
MYSQL_PASS = env.get('MYSQL_PASS')
MYSQL_NAME = env.get('MYSQL_NAME')
MILVUS_HOST = env.get('MILVUS_HOST')
MILVUS_PORT = int(env.get('MILVUS_PORT', 19530))
OSS_HOST = env.get('OSS_HOST')
OSS_ACCESS_KEY_ID = env.get('OSS_ACCESS_KEY_ID')
OSS_ACCESS_KEY_SECRET = env.get('OSS_ACCESS_KEY_SECRET')
# 创建上传图片的临时目录
UPLOAD_PATH = '/tmp/search-images'
if not os.path.exists(UPLOAD_PATH):
os.makedirs(UPLOAD_PATH)
# 创建压缩图片的临时目录
IMAGES_PATH = '/tmp/images'
if not os.path.exists(IMAGES_PATH):
os.makedirs(IMAGES_PATH)
# 创建sqlite3数据库目录
SQLITE3_PATH = '/tmp/sqlite3'
if not os.path.exists(SQLITE3_PATH):
os.makedirs(SQLITE3_PATH)
def clear_images():
print('开始清理创建时间大于30分钟的图片缓存')
for file in os.listdir(IMAGES_PATH):
if os.path.getmtime(os.path.join(IMAGES_PATH, file)) < time.time() - 30 * 60:
print('清理图片缓存:', file)
os.remove(os.path.join(IMAGES_PATH, file))
# 构建一个定时任务每30分钟清理一次图片缓存
scheduler = BackgroundScheduler()
scheduler.add_job(clear_images, 'interval', minutes=30)
scheduler.start()