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 状态码。
received
、request_size
、sent
和 response_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