reqargs: Lese application/x-www-form-urlencoded, multipart/form-data und application/json Anforderungsargumente
Installation
Wenn Sie das RPM-Repository-Abonnement nicht eingerichtet haben, melden Sie sich an. Dann können Sie mit den folgenden Schritten fortfahren.
CentOS/RHEL 7 oder Amazon Linux 2
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-reqargs
CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-reqargs
Um diese Lua-Bibliothek mit NGINX zu verwenden, stellen Sie sicher, dass nginx-module-lua installiert ist.
Dieses Dokument beschreibt lua-resty-reqargs v1.4, veröffentlicht am 07. Januar 2017.
Hilfsprogramm zum Abrufen von application/x-www-form-urlencoded, multipart/form-data und application/json Anforderungsargumenten.
Synopsis
local get, post, files = require "resty.reqargs"()
if not get then
error(post)
end
-- Verwenden Sie get, post und files...
API
Dieses Modul hat nur eine Funktion, und diese Funktion wird mit require geladen:
local reqargs = require "resty.reqargs"
get, post, files regargs(options)
Wenn Sie die Funktion (reqargs) aufrufen, können Sie options übergeben. Diese Optionen überschreiben alles, was Sie möglicherweise in Ihrer Nginx-Konfiguration (oder den Standardwerten) definiert haben. Sie können die folgenden Optionen verwenden:
{
tmp_dir = "/tmp",
timeout = 1000,
chunk_size = 4096,
max_get_args = 100,
max_post_args = 100,
max_line_size = 512,
max_file_uploads = 10
}
Diese Funktion gibt drei (3) Rückgabewerte zurück, die get, post und files genannt werden. Dies sind Lua-Tabellen, die die angeforderten Daten (HTTP) enthalten. get enthält die HTTP-Anforderungs-GET-Argumente, die mit ngx.req.get_uri_args abgerufen wurden. post enthält entweder die HTTP-Anforderungs-POST-Argumente, die mit ngx.req.get_post_args abgerufen wurden, oder im Falle von application/json (als Content-Type-Header für die Anfrage) wird der Anfragekörper gelesen und das JSON decodiert, und post enthält dann die decodierte JSON-Struktur, die als Lua-Tabellen dargestellt wird. Der letzte Rückgabewert files enthält alle hochgeladenen Dateien. Der Rückgabewert files enthält nur Daten, wenn tatsächlich Dateien hochgeladen wurden und der Content-Type der Anfrage auf multipart/form-data gesetzt ist. files hat die gleiche Struktur wie get und post für die Schlüssel, aber die Werte werden als Lua-Tabellen dargestellt, die so aussehen (denken Sie an PHPs $_FILES):
{
-- Der Name des Datei-Upload-Formularfelds (gleich dem Schlüssel)
name = "photo",
-- Der Name der Datei, die der Benutzer für den Upload ausgewählt hat
file = "cat.jpg",
-- Der MIME-Typ der hochgeladenen Datei
type = "image/jpeg",
-- Die Dateigröße der hochgeladenen Datei (in Bytes)
size = 123465,
-- Der Ort, an dem die hochgeladene Datei gestreamt wurde
temp = "/tmp/????"
}
Im Falle eines Fehlers gibt diese Funktion nil, Fehlermeldung zurück.
Nginx-Konfigurationsvariablen
Sie können mehrere Aspekte von lua-resty-reqargs direkt aus der Nginx-Konfiguration konfigurieren. Hier sind die Konfigurationswerte, die Sie verwenden können, sowie ihre Standardwerte:
## der Standardwert ist das System-Temp-Verzeichnis
set $reqargs_tmp_dir /tmp;
## siehe https://github.com/openresty/lua-resty-upload
set $reqargs_timeout 1000;
## siehe https://github.com/openresty/lua-resty-upload
set $reqargs_chunk_size 4096;
## siehe https://github.com/openresty/lua-nginx-module#ngxreqget_uri_args
set $reqargs_max_get_args 100;
## siehe https://github.com/openresty/lua-nginx-module#ngxreqget_post_args
set $reqargs_max_post_args 100;
## siehe https://github.com/openresty/lua-resty-upload
set $reqargs_max_line_size 512;
## der Standardwert ist unbegrenzt
set $reqargs_max_file_uploads 10;
Änderungen
Die Änderungen jeder Version dieses Moduls sind in der Datei Changes.md dokumentiert.
GitHub
Zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul finden Sie im GitHub-Repository für nginx-module-reqargs.