add:前端判断文件大小
add:自定义删除过期文件间隔,修复因间隔过短导致还没下载文件就没了
This commit is contained in:
@@ -39,7 +39,8 @@ async def startup():
|
||||
index_html = open('templates/index.html', 'r', encoding='utf-8').read() \
|
||||
.replace('{{title}}', settings.TITLE) \
|
||||
.replace('{{description}}', settings.DESCRIPTION) \
|
||||
.replace('{{keywords}}', settings.KEYWORDS)
|
||||
.replace('{{keywords}}', settings.KEYWORDS) \
|
||||
.replace("'{{fileSizeLimit}}'", str(settings.FILE_SIZE_LIMIT))
|
||||
# 管理页面
|
||||
admin_html = open('templates/admin.html', 'r', encoding='utf-8').read() \
|
||||
.replace('{{title}}', settings.TITLE) \
|
||||
@@ -116,7 +117,7 @@ async def index(code: str, ip: str = Depends(error_ip_limit), s: AsyncSession =
|
||||
if info.type != 'text':
|
||||
info.text = f'/select?code={code}'
|
||||
return {
|
||||
'detail': '取件成功,请点击"取"查看',
|
||||
'detail': f'取件成功,文件将在{settings.DELETE_EXPIRE_FILES_INTERVAL}分钟后删除',
|
||||
'data': {'type': info.type, 'text': info.text, 'name': info.name, 'code': info.code}
|
||||
}
|
||||
|
||||
|
||||
@@ -104,8 +104,6 @@ DATABASE_URL=sqlite+aiosqlite:///database.db
|
||||
DATA_ROOT=./static
|
||||
# 静态文件夹URL
|
||||
STATIC_URL=/static
|
||||
# 是否开启上传
|
||||
ENABLE_UPLOAD=true
|
||||
# 错误次数
|
||||
ERROR_COUNT=5
|
||||
# 错误限制分钟数
|
||||
@@ -114,6 +112,8 @@ ERROR_MINUTE=10
|
||||
UPLOAD_COUNT=60
|
||||
# 上传限制分钟数
|
||||
UPLOAD_MINUTE=1
|
||||
# 删除过期文件的间隔(秒)
|
||||
DELETE_EXPIRE_FILES_INTERVAL=60
|
||||
# 管理地址
|
||||
ADMIN_ADDRESS=admin
|
||||
# 管理密码
|
||||
|
||||
+2
-2
@@ -113,8 +113,6 @@ DATABASE_URL=sqlite+aiosqlite:///database.db
|
||||
DATA_ROOT=./static
|
||||
# 静态文件夹URL
|
||||
STATIC_URL=/static
|
||||
# 是否开启上传
|
||||
ENABLE_UPLOAD=true
|
||||
# 错误次数
|
||||
ERROR_COUNT=5
|
||||
# 错误限制分钟数
|
||||
@@ -123,6 +121,8 @@ ERROR_MINUTE=10
|
||||
UPLOAD_COUNT=60
|
||||
# 上传限制分钟数
|
||||
UPLOAD_MINUTE=1
|
||||
# 删除过期文件的间隔(秒)
|
||||
DELETE_EXPIRE_FILES_INTERVAL=60
|
||||
# 管理地址
|
||||
ADMIN_ADDRESS=admin
|
||||
# 管理密码
|
||||
|
||||
@@ -27,6 +27,8 @@ ERROR_MINUTE = config('ERROR_MINUTE', cast=int, default=10)
|
||||
UPLOAD_COUNT = config('UPLOAD_COUNT', cast=int, default=60)
|
||||
# 上传限制分钟数
|
||||
UPLOAD_MINUTE = config('UPLOAD_MINUTE', cast=int, default=1)
|
||||
# 删除过期文件的间隔(秒)
|
||||
DELETE_EXPIRE_FILES_INTERVAL = config('DELETE_EXPIRE_FILES_INTERVAL', cast=int, default=10)
|
||||
# 管理地址
|
||||
ADMIN_ADDRESS = config('ADMIN_ADDRESS', cast=str, default="admin")
|
||||
# 管理密码
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
multiple
|
||||
style="margin: 1rem 0;"
|
||||
:data="uploadData"
|
||||
:before-upload="beforeUpload"
|
||||
:headers="{'pwd':pwd}"
|
||||
:on-success="successUpload"
|
||||
:on-error="errorUpload"
|
||||
@@ -195,6 +196,7 @@
|
||||
files: [],
|
||||
pageNum: 0,
|
||||
inputDisable: false,
|
||||
fileSizeLimit: '{{fileSizeLimit}}',
|
||||
pwd: localStorage.getItem('pwd') || '',
|
||||
uploadData: {
|
||||
style: '2',
|
||||
@@ -322,6 +324,15 @@
|
||||
type: 'error'
|
||||
});
|
||||
},
|
||||
beforeUpload: function (file) {
|
||||
if (file.size > this.fileSizeLimit) {
|
||||
this.$message({
|
||||
message: `文件大小不能超过${this.fileSizeLimit/1024/1024}MB`,
|
||||
type: 'error'
|
||||
});
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -33,7 +33,7 @@ async def delete_expire_files():
|
||||
query = delete(Codes).where(Codes.id.in_(exps_ids))
|
||||
await s.execute(query)
|
||||
await s.commit()
|
||||
await asyncio.sleep(random.randint(2, 2))
|
||||
await asyncio.sleep(settings.DELETE_EXPIRE_FILES_INTERVAL)
|
||||
|
||||
|
||||
async def get_code(s: AsyncSession):
|
||||
|
||||
Reference in New Issue
Block a user