Compare commits
No commits in common. "455a63f20faad757af0682596ddd8c945e4fb583" and "2453bb05eae35ecbab8dc45daf9d4c4d0cf6f63a" have entirely different histories.
455a63f20f
...
2453bb05ea
26
app.py
26
app.py
@ -1,6 +1,6 @@
|
|||||||
from flask import Flask, render_template, jsonify, Response, stream_with_context
|
from flask import Flask, render_template, jsonify
|
||||||
from config import Config
|
from config import Config
|
||||||
from extensions import db, redis_client, migrate, s3_client
|
from extensions import db, redis_client, migrate
|
||||||
from blueprints.auth import auth_bp
|
from blueprints.auth import auth_bp
|
||||||
from blueprints.api import api_bp
|
from blueprints.api import api_bp
|
||||||
from blueprints.admin import admin_bp
|
from blueprints.admin import admin_bp
|
||||||
@ -82,28 +82,6 @@ def create_app():
|
|||||||
def video_page():
|
def video_page():
|
||||||
return render_template('video.html')
|
return render_template('video.html')
|
||||||
|
|
||||||
@app.route('/files/<path:filename>')
|
|
||||||
def get_file(filename):
|
|
||||||
"""Proxy route to serve files from MinIO via the backend"""
|
|
||||||
try:
|
|
||||||
# Use s3_client to get the object
|
|
||||||
file_obj = s3_client.get_object(Bucket=Config.MINIO["bucket"], Key=filename)
|
|
||||||
|
|
||||||
def generate():
|
|
||||||
for chunk in file_obj['Body'].iter_chunks(chunk_size=4096):
|
|
||||||
yield chunk
|
|
||||||
|
|
||||||
return Response(
|
|
||||||
stream_with_context(generate()),
|
|
||||||
mimetype=file_obj['ContentType'],
|
|
||||||
headers={
|
|
||||||
"Cache-Control": "public, max-age=86400"
|
|
||||||
}
|
|
||||||
)
|
|
||||||
except Exception as e:
|
|
||||||
# system_logger.error(f"File proxy error: {str(e)}") # Optional logging
|
|
||||||
return jsonify({"error": "File not found"}), 404
|
|
||||||
|
|
||||||
# 自动创建数据库表
|
# 自动创建数据库表
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
print("🔧 正在检查并创建数据库表...")
|
print("🔧 正在检查并创建数据库表...")
|
||||||
|
|||||||
@ -27,7 +27,7 @@ class Config:
|
|||||||
"access_key": "l0VlsxrkASbXN2YSQrJk",
|
"access_key": "l0VlsxrkASbXN2YSQrJk",
|
||||||
"secret_key": "ZK8nXHieorl3fpbssUMGGfr8zZmbpXB5gAbma3z1",
|
"secret_key": "ZK8nXHieorl3fpbssUMGGfr8zZmbpXB5gAbma3z1",
|
||||||
"bucket": "images",
|
"bucket": "images",
|
||||||
"public_url": "/files/"
|
"public_url": "http://331002.xyz:9000/images/"
|
||||||
}
|
}
|
||||||
|
|
||||||
# AI API 配置
|
# AI API 配置
|
||||||
|
|||||||
@ -26,11 +26,6 @@ def get_user_history_data(user_id, page=1, per_page=10, filter_type='all'):
|
|||||||
.paginate(page=page, per_page=per_page, error_out=False)
|
.paginate(page=page, per_page=per_page, error_out=False)
|
||||||
|
|
||||||
# 格式化 URL,兼容新旧数据格式
|
# 格式化 URL,兼容新旧数据格式
|
||||||
def fix_minio_url(url):
|
|
||||||
if url and ":9000/images/" in url:
|
|
||||||
return "/files/" + url.split(":9000/images/")[-1]
|
|
||||||
return url
|
|
||||||
|
|
||||||
history_list = []
|
history_list = []
|
||||||
for r in pagination.items:
|
for r in pagination.items:
|
||||||
raw_urls = json.loads(r.image_urls)
|
raw_urls = json.loads(r.image_urls)
|
||||||
@ -38,16 +33,9 @@ def get_user_history_data(user_id, page=1, per_page=10, filter_type='all'):
|
|||||||
for u in raw_urls:
|
for u in raw_urls:
|
||||||
if isinstance(u, str):
|
if isinstance(u, str):
|
||||||
# 旧数据:直接返回原图作为缩略图
|
# 旧数据:直接返回原图作为缩略图
|
||||||
fixed_u = fix_minio_url(u)
|
formatted_urls.append({"url": u, "thumb": u})
|
||||||
formatted_urls.append({"url": fixed_u, "thumb": fixed_u})
|
|
||||||
else:
|
else:
|
||||||
# 修复对象格式中的 URL
|
# 如果是视频类型,提供默认预览图 (此处使用一个公共视频占位图或空)
|
||||||
if 'url' in u:
|
|
||||||
u['url'] = fix_minio_url(u['url'])
|
|
||||||
if 'thumb' in u:
|
|
||||||
u['thumb'] = fix_minio_url(u['thumb'])
|
|
||||||
|
|
||||||
# 如果是视频类型,提供默认预览图
|
|
||||||
if u.get('type') == 'video' and not u.get('thumb'):
|
if u.get('type') == 'video' and not u.get('thumb'):
|
||||||
u['thumb'] = "https://img.icons8.com/flat-round/64/000000/play--v1.png"
|
u['thumb'] = "https://img.icons8.com/flat-round/64/000000/play--v1.png"
|
||||||
formatted_urls.append(u)
|
formatted_urls.append(u)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user