动作服务器
TCP 动作服务器
from automation_file import start_autocontrol_socket_server
server = start_autocontrol_socket_server(
host="localhost", port=9943, shared_secret="optional-secret",
)
# 稍后:
server.shutdown()
server.server_close()
设置 shared_secret 后,客户端必须在 JSON 动作列表之前加上
AUTH <secret>\n 前缀。服务器默认仍绑定 loopback,除非显式传入
allow_non_loopback=True,否则拒绝非 loopback 绑定。
每个连接只接受一份 JSON 负载(recv(8192))。
若要提高该上限,必须同时改为带长度前缀的协议。
HTTP 动作服务器
from automation_file import start_http_action_server
server = start_http_action_server(
host="127.0.0.1", port=9944, shared_secret="optional-secret",
)
# 客户端:
# curl -H 'Authorization: Bearer optional-secret' \
# -d '[["FA_create_dir",{"dir_path":"x"}]]' \
# http://127.0.0.1:9944/actions
HTTP 响应均为 JSON。鉴权失败返回 401;非法 JSON 返回 400;
未知路径返回 404。请求体上限 1 MB。默认仅绑定 loopback;
若要绑定其他地址须传 allow_non_loopback=True。
共享密钥比较使用 :func:`hmac.compare_digest`(常数时间)。 切勿记录密钥或原始负载。