MCPcopy Index your code
hub / github.com/vastsa/FileCodeBox / share_file

Function share_file

apps/base/views.py:169–197  ·  view source on GitHub ↗
(
    expire_value: int = Form(default=1, gt=0),
    expire_style: str = Form(default="day"),
    file: UploadFile = File(...),
    ip: str = Depends(ip_limit["upload"]),
)

Source from the content-addressed store, hash-verified

167
168@share_api.post("/file/", dependencies=[Depends(share_required_login)])
169async 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
200async def get_code_file_by_code(

Callers

nothing calls this directly

Calls 8

get_expire_infoFunction · 0.90
get_file_path_nameFunction · 0.90
APIResponseClass · 0.90
validate_file_sizeFunction · 0.85
validate_file_typeFunction · 0.85
create_file_codeFunction · 0.85
add_ipMethod · 0.80
save_fileMethod · 0.45

Tested by

no test coverage detected