이 프로젝트는 I2TCP 통신 프로토콜을 기반으로하는 파일 전송 서버입니다. 유효 키 길이는 512 비트에 도달합니다. 또한 공개 네트워크 환경에서 서비스가 안전하게 생존 할 수 있도록 Google과 같은 이중 인증 인증 메커니즘이 있습니다.
pip install i2ftp-server
Python3.6+i2cylib >= 1.8.14i2ftps-setup 서버 구성 마법사i2ftps 서버 시작/정지 /usr/share/i2ftp/server_conf.json
b"I2FTP xx" 보냅니다. 기본 TCP/IP ← I2TCP ← User 최상위 레벨
클라이언트 명령 - "쿼리": LIST,<PATH>
<bool 路径是否存在>,{'文件1':{is_dir:<bool 是否是文件夹> size:<int 大小>, time:<float 文件修改时间戳>}} 클라이언트 명령 - "요청 다운로드": GETF,<PATH>
<bool 请求是否接受>,[16 bytes 下载会话ID] 클라이언트 명령 - "세션 ID를 통해 다운로드": DOWN,<16 bytes 下载会话ID>,<uint64 文件指针偏移量>,<uint64 截止文件指针偏移量>
단일 리턴 패킷이 요청 된 길이를 한 번에 전송할 수없는 경우, 요청 된 길이가 충족 될 때까지 서버는 여러 패킷을 차례로 전송합니다.
截止文件指针偏移量≤文件指针偏移量되면 서버는文件指针偏移量의 데이터가 파일 끝까지 해당 해당 해당 데이터를 요청합니다.
반환 : <bool 操作是否有效>,[uint64 文件指针偏移量],[bytes 数据内容最大长度524128 Bytes] (단일 또는 시퀀스)
클라이언트 명령 - "요청 업로드": PULF,<PATH>,<str_hex 文件哈希校验值>
<bool 操作是否有效>,[16 bytes 上传会话ID] 클라이언트 명령 - "세션 ID를 통해 업로드": UPLD,<16 bytes 上传会话ID>,<uint64 文件指针偏移量>,<bytes 数据内容最大长度524128 Bytes>
<bool 上传是否成功>,[int 当前文件指针偏移量] 클라이언트 명령 - "닫기 세션": CLOZ,<16 bytes 会话ID>
<bool 操作是否成功>,[hex_str 若会话为下载会话,则会同时返回文件的MD5校验值] 클라이언트 명령-"파일/폴더 작동": FIOP,<int 命令:0-重命名,1-移动,2-复制,3-删除,4-创建目录>,<str 路径1>,[str 路径2]
<bool 操作是否成功> 관리자 명령 - "프로세스 제어": PCTL,[raw 保留字段]
<bool 操作是否成功>,<int 进程PID>