mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-06-08 09:10:32 +08:00
fix(cache): support clear image cache
This commit is contained in:
@@ -76,7 +76,7 @@ def fetch_image(
|
|||||||
try:
|
try:
|
||||||
content = cache_path.read_bytes()
|
content = cache_path.read_bytes()
|
||||||
etag = HashUtils.md5(content)
|
etag = HashUtils.md5(content)
|
||||||
headers = RequestUtils.generate_cache_headers(etag)
|
headers = RequestUtils.generate_cache_headers(etag, max_age=86400 * 7)
|
||||||
if if_none_match == etag:
|
if if_none_match == etag:
|
||||||
return Response(status_code=304, headers=headers)
|
return Response(status_code=304, headers=headers)
|
||||||
return Response(content=content, media_type="image/jpeg", headers=headers)
|
return Response(content=content, media_type="image/jpeg", headers=headers)
|
||||||
|
|||||||
@@ -64,10 +64,12 @@ def stop_frontend():
|
|||||||
|
|
||||||
def clear_temp():
|
def clear_temp():
|
||||||
"""
|
"""
|
||||||
清理临时目录中3天前的文件
|
清理临时文件和图片缓存
|
||||||
"""
|
"""
|
||||||
# 清理3天前的文件
|
# 清理临时目录中3天前的文件
|
||||||
SystemUtils.clear(settings.TEMP_PATH, days=3)
|
SystemUtils.clear(settings.TEMP_PATH, days=3)
|
||||||
|
# 清理图片缓存目录中7天前的文件
|
||||||
|
SystemUtils.clear(settings.CACHE_PATH / "images", days=7)
|
||||||
|
|
||||||
|
|
||||||
def check_auth():
|
def check_auth():
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import subprocess
|
|||||||
import sys
|
import sys
|
||||||
from glob import glob
|
from glob import glob
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, Union, Tuple, Optional
|
from typing import List, Optional, Tuple, Union
|
||||||
|
|
||||||
import docker
|
import docker
|
||||||
import psutil
|
import psutil
|
||||||
@@ -537,11 +537,18 @@ class SystemUtils:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def clear(temp_path: Path, days: int):
|
def clear(temp_path: Path, days: int):
|
||||||
"""
|
"""
|
||||||
清理临时目录中指定天数前的文件
|
清理指定目录中指定天数前的文件,递归删除子文件及空文件夹
|
||||||
"""
|
"""
|
||||||
if not temp_path.exists():
|
if not temp_path.exists():
|
||||||
return
|
return
|
||||||
for file in temp_path.glob('*'):
|
# 遍历目录及子目录中的所有文件和文件夹
|
||||||
if file.is_file() \
|
for file in temp_path.rglob('*'):
|
||||||
and (datetime.datetime.now() - datetime.datetime.fromtimestamp(file.stat().st_mtime)).days > days:
|
# 如果是文件并且符合时间条件,则删除
|
||||||
|
if file.is_file() and (
|
||||||
|
datetime.datetime.now() - datetime.datetime.fromtimestamp(file.stat().st_mtime)).days > days:
|
||||||
file.unlink()
|
file.unlink()
|
||||||
|
# 删除空的文件夹
|
||||||
|
for folder in sorted(temp_path.rglob('*'), reverse=True):
|
||||||
|
# 确保是空文件夹
|
||||||
|
if folder.is_dir() and not any(folder.iterdir()):
|
||||||
|
folder.rmdir()
|
||||||
|
|||||||
Reference in New Issue
Block a user