Server Referencerouters
files
File manager endpoints for the user's home directories.
attributelogger= logging.getLogger(__name__)attributerouter= APIRouter(prefix='/api/files', dependencies=[Depends(verify_persistent_storage_enabled)], route_class=EncryptedRoute)attributeCHUNK_SIZE= 2 * 1024 * 1024funcget_validated_path(username, home_dir, sub_path, check_existence=True) -> pathlib.PathResolve a path inside a user's home directory, refusing traversal.
paramusernamestrOwner of the home directory.
paramhome_dirstrHome directory name.
paramsub_pathstrPath relative to the home directory.
paramcheck_existencebool= TrueRaise 404 when the path does not exist.
Returns
pathlib.PathThe resolved absolute path.
func_perform_deletion(task_id, username, home_dir, paths) -> NoneBackground worker deleting files and folders.
paramtask_idstrparamusernamestrparamhome_dirstrparampathslist[str]Returns
Nonefuncdownload_file_chunk(home_dir, path=Query(...), chunk_index=Query(..., ge=0), user=Depends(verify_persistent_storage_enabled)) -> dict[str, Any]Return one 2 MiB chunk of a file as base64.
paramhome_dirstrparampathstr= Query(...)paramchunk_indexint= Query(..., ge=0)paramuserdict[str, Any]= Depends(verify_persistent_storage_enabled)Returns
dict[str, typing.Any]funccreate_folder(home_dir, decrypted_body=Depends(get_decrypted_request_body), user=Depends(verify_persistent_storage_enabled)) -> dict[str, str]Create a folder.
paramhome_dirstrparamdecrypted_bodydict[str, Any]= Depends(get_decrypted_request_body)paramuserdict[str, Any]= Depends(verify_persistent_storage_enabled)Returns
dict[str, str]funcinitiate_deletion(home_dir, decrypted_body=Depends(get_decrypted_request_body), user=Depends(verify_persistent_storage_enabled)) -> dict[str, str]Start deleting files and folders in the background.
paramhome_dirstrparamdecrypted_bodydict[str, Any]= Depends(get_decrypted_request_body)paramuserdict[str, Any]= Depends(verify_persistent_storage_enabled)Returns
dict[str, str]funccheck_deletion_status(task_id, user=Depends(verify_token)) -> dict[str, Any]Return the status of a deletion task.
paramtask_idstrparamuserdict[str, Any]= Depends(verify_token)Returns
dict[str, typing.Any]funclist_files(home_dir, path=Query('/'), page=Query(1, ge=1), per_page=Query(50, ge=1, le=200), user=Depends(verify_persistent_storage_enabled)) -> dict[str, Any]List a directory page by page (folders first).
paramhome_dirstrparampathstr= Query('/')parampageint= Query(1, ge=1)paramper_pageint= Query(50, ge=1, le=200)paramuserdict[str, Any]= Depends(verify_persistent_storage_enabled)Returns
dict[str, typing.Any]funcfinalize_upload_to_dir(home_dir, decrypted_body=Depends(get_decrypted_request_body), user=Depends(verify_persistent_storage_enabled)) -> dict[str, str]Move a finished upload into a directory of a home directory.
paramhome_dirstrparamdecrypted_bodydict[str, Any]= Depends(get_decrypted_request_body)paramuserdict[str, Any]= Depends(verify_persistent_storage_enabled)Returns
dict[str, str]funclaunch_from_storage(decrypted_body=Depends(get_decrypted_request_body), user=Depends(verify_persistent_storage_enabled)) -> dict[str, Any]Return a launch context for a server-side file (the client opens the launcher).
paramdecrypted_bodydict[str, Any]= Depends(get_decrypted_request_body)paramuserdict[str, Any]= Depends(verify_persistent_storage_enabled)Returns
dict[str, typing.Any]