動作伺服器

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`(常數時間)。 切勿記錄密鑰或原始負載。