Skip to content

Commit 7b045e9

Browse files
author
lan-air
committed
delete file from disk
1 parent 0fd38d4 commit 7b045e9

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

main.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import datetime
22
import os
33
import uuid
4-
4+
import threading
55
from fastapi import FastAPI, Depends, UploadFile, Form, File
66
from sqlalchemy.orm import Session
77
from starlette.requests import Request
@@ -33,6 +33,11 @@
3333
error_ip_count = {}
3434

3535

36+
def delete_file(files):
37+
for file in files:
38+
os.remove('.' + file)
39+
40+
3641
def get_db():
3742
db = SessionLocal()
3843
try:
@@ -79,7 +84,7 @@ async def admin_delete(request: Request, code: str, db: Session = Depends(get_db
7984
if request.headers.get('pwd') == admin_password:
8085
file = db.query(database.Codes).filter(database.Codes.code == code)
8186
if file.first().type != 'text/plain':
82-
os.remove('.' + file.first().text)
87+
threading.Thread(target=delete_file, args=([file.first().text],)).start()
8388
file.delete()
8489
db.commit()
8590
return {'code': 200, 'msg': '删除成功'}
@@ -113,7 +118,9 @@ async def index(request: Request, code: str, db: Session = Depends(get_db)):
113118
@app.post('/share')
114119
async def share(text: str = Form(default=None), file: UploadFile = File(default=None), db: Session = Depends(get_db)):
115120
cutoff_time = datetime.datetime.now() - datetime.timedelta(hours=exp_hour)
116-
db.query(database.Codes).filter(database.Codes.use_time < cutoff_time).delete()
121+
olds = db.query(database.Codes).filter(database.Codes.use_time < cutoff_time)
122+
threading.Thread(target=delete_file, args=([old.text for old in olds if old.type != 'text/plain'],)).start()
123+
olds.delete()
117124
db.commit()
118125
code = get_code(db)
119126
if text:

0 commit comments

Comments
 (0)