add:新增永久保存,但是会永久占用一个码,问题待解决
This commit is contained in:
@@ -176,11 +176,14 @@ 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}天")
|
||||
exp_time = datetime.datetime.now() + datetime.timedelta(days=value)
|
||||
# 如果天数大于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':
|
||||
if value < 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
@@ -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)
|
||||
# 删除过期文件的间隔(分钟)
|
||||
|
||||
@@ -43,7 +43,8 @@
|
||||
<div>取件码:${ file.code }</div>
|
||||
<div>文件名:${ file.name }</div>
|
||||
<div>次 数:${ file.count }</div>
|
||||
<div>到 期:${ file.exp_time.slice(0,19) }</div>
|
||||
<div v-if="file.exp_time">到 期:${ file.exp_time.slice(0,19) }</div>
|
||||
<div v-else>到 期:永不过期</div>
|
||||
<div v-if="file.name==='文本分享'">
|
||||
<span style="white-space: pre-line">内 容:${ file.text }</span>
|
||||
</div>
|
||||
|
||||
+12
-9
@@ -138,15 +138,18 @@
|
||||
</el-carousel>
|
||||
</div>
|
||||
<el-row>
|
||||
<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-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 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-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">
|
||||
文件
|
||||
|
||||
Reference in New Issue
Block a user