然后让GTP-4用一个脚本搞定所有事,也不生成静态文件了,减少写盘开销。
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time
import os
from datetime import datetime
import threading
from bottle import route, run, response, ServerAdapter, static_file
# 可配置的变量
image_dir = '/var/www/img'
web_root_dir = '/var/www'
httphost = '0.0.0.0'
httpport = 8080
#index.html页面放入内存中
html_content = ''
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
global html_content
if event.is_directory:
return None
if event.event_type == 'modified':
# 添加延迟
time.sleep(5)
# 获取文件修改时间
timestamp = os.path.getmtime(event.src_path)
modify_time = datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
# 获取相对路径
relative_path = os.path.relpath(event.src_path, image_dir)
# 重新计算图片文件的相对路径
static_path = os.path.join('static', relative_path)
# 生成HTML内容
html_content = f'<img src="/{static_path}" alt="Image"><p>{modify_time}</p>'
@route('/')
def index():
response.content_type = 'text/html'
return html_content
@route('/static/<filepath:path>')
def server_static(filepath):
return static_file(filepath, root=web_root_dir)
class StoppableServer(ServerAdapter):
def run(self, handler):
from wsgiref.simple_server import make_server, WSGIRequestHandler
if self.quiet:
class QuietHandler(WSGIRequestHandler):
def log_request(*args, **kw): pass
self.options['handler_class'] = QuietHandler
self.server = make_server(self.host, self.port, handler, **self.options)
self.server.serve_forever()
def stop(self):
self.server.shutdown()
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path=image_dir, recursive=False)
observer.start()
# 在一个新的线程中运行Bottle服务器
server = StoppableServer(host=httphost, port=httpport)
threading.Thread(target=lambda: run(server=server)).start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
server.stop()
observer.join()
然后再生成一个systemd,开机跑在后台,就齐活了。
sudo nano /etc/systemd/system/websrvpic.service
[Unit]
Description=Web Server for Pictures
After=network.target
[Service]
ExecStart=/usr/bin/python3 /path/to/websrvpic.py
Restart=always
User=username
Group=groupname
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
sudo systemctl start websrvpic
sudo systemctl status websrvpic
sudo systemctl enable websrvpic
--
FROM 171.221.52.*