Skip to content

Commit 03e06d7

Browse files
committed
修补bug
1 parent 4104dc7 commit 03e06d7

3 files changed

Lines changed: 16 additions & 8 deletions

File tree

src/stealthimfilestorage/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ def load_cfg(cfg_path: str = "config.toml"):
3434
async def reload_cfg():
3535
global last_config_path
3636
await asyncio.to_thread(lambda: load_cfg(last_config_path))
37+
print("[CONF]Config Reloaded")

src/stealthimfilestorage/server.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ async def GetUsage(data: filestorage_pb2.GetUsageRequest) -> filestorage_pb2.Get
4545

4646

4747
@serv.serve
48-
async def Reload(_: filestorage_pb2.ReloadRequest) -> filestorage_pb2.ReloadResponse:
49-
await config.reload_cfg()
48+
async def Reload(data: filestorage_pb2.ReloadRequest) -> filestorage_pb2.ReloadResponse:
49+
asyncio.create_task(config.reload_cfg())
5050
return filestorage_pb2.ReloadResponse(result=filestorage_pb2.Result(code=0, msg=""))

src/stealthimfilestorage/storage.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ async def save(bytes: bytes, hashstr: str, block_id: int) -> None:
1313
usage += 1
1414
try:
1515
hash_head = hashstr[:2]
16-
await aiofiles.os.makedirs(f"{config.Storage_Dir}{os.sep}{hash_head}", exist_ok=True)
16+
await aiofiles.os.makedirs(f"{config.Storage_Dir}{os.sep}{hash_head}{os.sep}{hashstr}", exist_ok=True)
1717
assert await aiofiles.os.path.exists(f"{config.Storage_Dir}{os.sep}{hash_head}{os.sep}{hashstr}{os.sep}{block_id}") is False
1818
async with aiofiles.open(f"{config.Storage_Dir}{os.sep}{hash_head}{os.sep}{hashstr}{os.sep}{block_id}", "wb") as f:
1919
await f.write(bytes)
@@ -33,18 +33,25 @@ async def get(hashstr: str, block_id: int) -> bytes:
3333

3434
async def delete(hashstr: str) -> None:
3535
global usage
36-
usage -= 1
3736
hash_head = hashstr[:2]
37+
usage_ln = 0
3838
try:
39+
usage_ln = len(os.listdir(
40+
f"{config.Storage_Dir}{os.sep}{hash_head}{os.sep}{hashstr}"))
41+
usage -= usage_ln
3942
await asyncio.to_thread(lambda: shutil.rmtree(f"{config.Storage_Dir}{os.sep}{hash_head}{os.sep}{hashstr}"))
4043
except Exception:
41-
usage += 1
44+
usage += usage_ln
4245

4346

4447
def get_usage():
4548
global usage
4649
usage = 0
47-
usage_tmp = 0
48-
usage_tmp = sum(len(os.listdir(f"{config.Storage_Dir}{os.sep}{i}"))
49-
for i in os.listdir(str(config.Storage_Dir)))
50+
usage_tmp = sum(
51+
sum(
52+
len(
53+
os.listdir(f"{config.Storage_Dir}{os.sep}{i}{os.sep}{j}")
54+
) for j in os.listdir(f"{config.Storage_Dir}{os.sep}{i}")
55+
) for i in os.listdir(f"{config.Storage_Dir}{os.sep}")
56+
)
5057
usage = usage_tmp

0 commit comments

Comments
 (0)