Skip to content

Commit 4911e44

Browse files
committed
fix: 修复 check_sign 导致进入死循环
1 parent 6c549a6 commit 4911e44

File tree

3 files changed

+24
-9
lines changed

3 files changed

+24
-9
lines changed

core/cluster.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,6 +1132,20 @@ async def _(request: aweb.Request):
11321132
return aweb.FileResponse(
11331133
Path(storage.get_path(MEASURES_HASH[size]))
11341134
)
1135+
elif isinstance(storage, storages.WebDavStorage):
1136+
file = await storage.get_file(MEASURES_HASH[size])
1137+
if file.url:
1138+
return aweb.HTTPFound(file.url)
1139+
elif file.size >= 0:
1140+
return aweb.Response(
1141+
status=200,
1142+
headers={
1143+
"Content-Length": str(file.size),
1144+
"Content-Type": "application/octet-stream",
1145+
},
1146+
body=file.data
1147+
)
1148+
11351149
if config.const.measure_storage:
11361150
logger.twarning("cluster.warning.measure_storage")
11371151
response = aweb.StreamResponse(
@@ -1153,6 +1167,7 @@ async def _(request: aweb.Request):
11531167
f"https://speedtest1.online.sh.cn:8080/download?size={size * 1024 * 1024}&r=0.7129844570865569"
11541168
)"""
11551169
except:
1170+
logger.traceback()
11561171
return aweb.Response(status=400)
11571172

11581173
@routes.get("/download/{hash}")

core/config.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,39 +134,39 @@ def ssl_key(self):
134134

135135
@property
136136
def check_sign(self):
137-
return Config.get("advanced.check_sign", True)
137+
return Config.get("advanced.check_sign") or True
138138

139139
@property
140140
def check_type(self):
141-
return Config.get("advanced.check_type", "size")
141+
return Config.get("advanced.check_type") or "size"
142142

143143
@property
144144
def sync_interval(self):
145-
return max(Config.get("advanced.sync_interval", 600), 600)
145+
return max(Config.get("advanced.sync_interval", 600) or 600, 600)
146146

147147
@property
148148
def xff(self):
149-
return Config.get("web.x_forwarded_for", 0)
149+
return Config.get("web.x_forwarded_for") or 0
150150

151151
@property
152152
def auto_sync_assets(self):
153-
return Config.get("advanced.auto_sync_assets", True)
153+
return Config.get("advanced.auto_sync_assets") or True
154154

155155
@property
156156
def github_token(self):
157-
return Config.get("advanced.github_token", None) or None
157+
return Config.get("advanced.github_token") or None
158158

159159
@property
160160
def measure_storage(self) -> bool:
161-
return Config.get("advanced.measure_storage", False)
161+
return Config.get("advanced.measure_storage") or False
162162

163163
@property
164164
def rank_clusters_url(self):
165165
return Config.get("advanced.dashboard_rank_clusters_url") or "https://bd.bangbang93.com/openbmclapi/metric/rank"
166166

167167
const = Const()
168168

169-
VERSION = "3.2.6"
169+
VERSION = "3.2.7"
170170
API_VERSION = "1.13.1"
171171
USER_AGENT = f"openbmclapi/{API_VERSION} python-openbmclapi/{VERSION}"
172172
PYTHON_VERSION = ".".join(map(str, (sys.version_info.major, sys.version_info.minor, sys.version_info.micro)))

core/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ def to_days(self):
184184

185185

186186
def check_sign(hash: str, secret: str, s: str, e: str) -> bool:
187-
return check_sign(hash, secret, s, e) and time.time() - 300 < int(e, 36)
187+
return check_sign_without_time(hash, secret, s, e) and time.time() - 300 < int(e, 36)
188188

189189
def check_sign_without_time(hash: str, secret: str, s: str, e: str):
190190
if not s or not e:

0 commit comments

Comments
 (0)