(
expire_value: int = Form(default=1, gt=0),
expire_style: str = Form(default="day"),
file: UploadFile = File(...),
ip: str = Depends(ip_limit["upload"]),
)
| 167 | |
| 168 | @share_api.post("/file/", dependencies=[Depends(share_required_login)]) |
| 169 | async def share_file( |
| 170 | expire_value: int = Form(default=1, gt=0), |
| 171 | expire_style: str = Form(default="day"), |
| 172 | file: UploadFile = File(...), |
| 173 | ip: str = Depends(ip_limit["upload"]), |
| 174 | ): |
| 175 | file_size = await validate_file_size(file, settings.uploadSize) |
| 176 | validate_file_type(file.filename or "", file.content_type) |
| 177 | if expire_style not in settings.expireStyle: |
| 178 | raise HTTPException(status_code=400, detail="过期时间类型错误") |
| 179 | expired_at, expired_count, used_count, code = await get_expire_info( |
| 180 | expire_value, expire_style |
| 181 | ) |
| 182 | path, suffix, prefix, uuid_file_name, save_path = await get_file_path_name(file) |
| 183 | file_storage: FileStorageInterface = storages[settings.file_storage]() |
| 184 | await file_storage.save_file(file, save_path) |
| 185 | await create_file_code( |
| 186 | code=code, |
| 187 | prefix=prefix, |
| 188 | suffix=suffix, |
| 189 | uuid_file_name=uuid_file_name, |
| 190 | file_path=path, |
| 191 | size=file_size, |
| 192 | expired_at=expired_at, |
| 193 | expired_count=expired_count, |
| 194 | used_count=used_count, |
| 195 | ) |
| 196 | ip_limit["upload"].add_ip(ip) |
| 197 | return APIResponse(detail={"code": code, "name": file.filename}) |
| 198 | |
| 199 | |
| 200 | async def get_code_file_by_code( |
nothing calls this directly
no test coverage detected