mod_progress

mod_progress 通过唯一标识符跟踪连接进度(状态)

mod_progress 允许您通过查找表跟踪连接进度(或者更确切地说是状态),其中连接通过请求中指定的随机唯一标识符进行注册。
它最常用于实现文件上传的进度条。

向网络服务器发出的请求通过 progress.track 动作注册,并由随 X-Progress-Id 查询字符串参数提供的随机唯一标识符进行跟踪。
从那一刻起,其他请求可以通过 progress.show 动作(指定之前使用的 X-Progress-Id)获取第一个请求的状态。
即使被跟踪的请求完成且与客户端的连接已断开,请求仍可在有限的时间内获取其状态,以将其视为“完成”。

请查阅源代码以获取更多信息。

progress.ttl(设置)

内部查找表中条目在断开连接后的存活时间(秒)

progress.ttl ttl;
ttl
存活时间(秒)(默认值:30)

progress.methods(选项)

要跟踪的请求方法

progress.methods methods;
默认值:("POST")

示例

setup {
	module_load "mod_progress";
	progress.methods ("PUT", "POST");
}

progress.track(动作)

如果提供了 X-Progress-ID 查询字符串键,则跟踪当前请求

progress.track;

progress.show(动作)

返回有关使用 X-Progress-ID 查询字符串参数指定的 ID 跟踪的请求的状态信息

progress.show format;
格式
(可选)输出格式,可以是 "legacy"、"json" 或 "jsonp" 之一。默认为 "json"。

输出格式

  • legacy: new Object({"state": "running"", "received": 123456, "sent": 0, "request_size": 200000, "response_size": 0})
  • json: {"state": "running", "received": 123456, "sent": 0, "request_size": 200000, "response_size": 0}
  • jsonp: progress({"state": "running", "received": 123456, "sent": 0, "request_size": 200000, "response_size": 0})
    函数名(默认为“progress”)可以通过提供 X-Progress-Callback 查询字符串参数进行更改。

JSON 对象可以包含以下成员

  • state: 以下之一:"unknown""running""done""error"
  • received: lighty 接收或客户端上传的字节数。
  • request_size: 请求的总大小或通过 Content-Length 请求头指定的上传文件大小。
  • sent: lighty 发送或客户端下载的字节数。
  • response_size: 响应的总大小。注意:如果从后端进行流式传输,此值可能会随时间增长。
  • status: 响应的 HTTP 状态码。

receivedrequest_sizesentresponse_size 仅在 state"running""done" 时可用。status 仅在 state"error" 时可用。

示例

setup {
	module_load "mod_progress";
}

if req.path == "/upload.php" { progress.track; }
if req.path == "/progress" { progress.show; }

progress.debug(选项)

启用调试输出

progress.debug value;
默认值:false