このプロジェクトは、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 截止文件指针偏移量>
単一の返品パケットが要求された長さを一度に送信できない場合、サーバーは要求された長さが満たされるまで複数のパケットを順番に送信します。
截止文件指针偏移量≤の文件指针偏移量の場合、サーバーは文件指针偏移量からファイルの最後までのデータが要求されることを検討します。
return: <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>