I2FTPServer
1.0.0
本項目為一款基於I2TCP通訊協議的文件傳輸服務器, 有效密鑰長度達到512bit,同時嵌有類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>