add:新增永久保存,但是会永久占用一个码,问题待解决

This commit is contained in:
lan
2023-02-11 19:41:44 +08:00
parent f72e121406
commit 71e7c6170b
4 changed files with 22 additions and 13 deletions
+5 -1
View File
@@ -176,10 +176,13 @@ async def get_file(code: str, token: str, ip: str = Depends(error_ip_limit), s:
async def share(background_tasks: BackgroundTasks, text: str = Form(default=None),
style: str = Form(default='2'), value: int = Form(default=1), file: UploadFile = File(default=None),
ip: str = Depends(upload_ip_limit), s: AsyncSession = Depends(get_session)):
code = await get_code(s)
if style == '2':
if value > settings.MAX_DAYS:
raise HTTPException(status_code=400, detail=f"最大有效天数为{settings.MAX_DAYS}")
# 如果天数大于0,就设置过期时间,否则就设置为永久,无过期时间
if settings.ENABLE_PERMANENT and value < 0:
exp_time = None
else:
exp_time = datetime.datetime.now() + datetime.timedelta(days=value)
exp_count = -1
elif style == '1':
@@ -199,6 +202,7 @@ async def share(background_tasks: BackgroundTasks, text: str = Form(default=None
background_tasks.add_task(storage.save_file, file, _text)
else:
size, _text, _type, name = len(text), text, 'text', '文本分享'
code = await get_code(s)
s.add(Codes(code=code, text=_text, size=size, type=_type, name=name, count=exp_count, exp_time=exp_time, key=key))
await s.commit()
upload_ip_limit.add_ip(ip)
+2 -1
View File
@@ -1,7 +1,6 @@
import uuid
from starlette.config import Config
import configparser
# 配置文件.env,存放为data/.env
config = Config("data/.env")
@@ -32,6 +31,8 @@ class Settings:
ERROR_MINUTE = config('ERROR_MINUTE', cast=int, default=10)
# 上传次数
UPLOAD_COUNT = config('UPLOAD_COUNT', cast=int, default=60)
# 是否允许永久保存
ENABLE_PERMANENT = config('ENABLE_PERMANENT', cast=bool, default=True)
# 上传限制分钟数
UPLOAD_MINUTE = config('UPLOAD_MINUTE', cast=int, default=1)
# 删除过期文件的间隔(分钟)
+2 -1
View File
@@ -43,7 +43,8 @@
<div>取件码${ file.code }</div>
<div>文件名${ file.name }</div>
<div>&nbsp;&nbsp; ${ file.count }</div>
<div>&nbsp;&nbsp; ${ file.exp_time.slice(0,19) }</div>
<div v-if="file.exp_time">&nbsp;&nbsp; ${ file.exp_time.slice(0,19) }</div>
<div v-else>&nbsp;&nbsp; 永不过期</div>
<div v-if="file.name==='文本分享'">
<span style="white-space: pre-line">&nbsp;&nbsp; ${ file.text }</span>
</div>
+4 -1
View File
@@ -138,15 +138,18 @@
</el-carousel>
</div>
<el-row>
<el-tooltip class="item" effect="dark" content="天数为-1则为永久" placement="top">
<el-input style="width: 190px" placeholder="数量" v-model="uploadData.value"
class="input-with-select">
<el-select style="width: 75px" v-model="uploadData.style" slot="prepend" placeholder="请选择">
<el-select style="width: 75px" v-model="uploadData.style" slot="prepend"
placeholder="请选择">
<el-option label="天数" value="2"></el-option>
<el-option label="次数" value="1"></el-option>
</el-select>
<el-button v-if="uploadData.style === '1'" slot="append" disabled></el-button>
<el-button v-else slot="append" disabled></el-button>
</el-input>
</el-tooltip>
<el-radio-group style="margin-left: 18px" v-model="uploadData.type">
<el-radio label="1">
文件