Welcome! Log In Create A New Profile

Advanced

Re: считать POST реквест в буффер

Maxim Dounin
December 11, 2010 06:36PM
Hello!

On Sat, Dec 11, 2010 at 05:55:34PM -0500, magz wrote:

> >r->request_body_in_single_buf = 1;
> >rc = ngx_http_read_client_request_body(r, ngx_http_my_body_handler);
>
> При установке request_body_in_single_buf в 1, в rc
> возвращается NGX_AGAIN. Что на сколько я
> понимаю означает что не полностью
> заполнился буфер r->request_body->buf

После вызова ngx_http_read_client_request_body() нужно сделать
ровно то, что написал Виталий, а именно:

if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
return rc;
}

return NGX_DONE;

Все остальные действия следует выполнять в обработчике
ngx_http_my_body_handler (когда nginx его позовёт).

И, чтобы два раза не вставать:

1. Я крайне не рекомендую пользоваться r->request_body->buf. Это
указатель на буфер чтения тела запроса, а не на само тело. Само тело
следует получить через цепочку r->request_body->bufs. Для случая
r->request_body_in_single_buf = 1 там будет один буфер.

2. Если тело больше, чем client_body_buffer_size[1], то оно
отправится на диск. Это следует иметь ввиду.

[1] http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#client_body_buffer_size

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

считать POST реквест в буффер

magz December 11, 2010 11:41AM

Re: считать POST реквест в буффер

Valery Kholodkov December 11, 2010 04:50PM

Re: считать POST реквест в буффер

magz December 11, 2010 05:55PM

Re: считать POST реквест в буффер

Valery Kholodkov December 11, 2010 06:20PM

Re: считать POST реквест в буффер

magz December 11, 2010 07:49PM

Re: считать POST реквест в буффер

Maxim Dounin December 11, 2010 06:36PM

Re: считать POST реквест в буффер

magz December 11, 2010 08:33PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 290
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready