Forum » Programiranje » [Python] Dekodiranje nginx POST file data v ndjson
[Python] Dekodiranje nginx POST file data v ndjson

HotBurek ::
Dobro jutro.
Evo, fantje in dekline. Nov dan, nov izziv.
V Python-u berem podatke, ki iz izvora pridejo preko nginx preko uwsgi v body-ju od POST requesta, in so v binarni obliki, gre pa za ndjson format.
https://github.com/ndjson/ndjson-spec
In nikakor ne morem iz binarne oblike obrnat v string.
Tole je binarna vrednost, ki jo dobim v fajlu, ki ga zgenerira nginx:
Mislim, da bo zadeva povezana z vsebino, ki jo nginx shrani v fajl. Se pravi, header + data.
Tule sem imel isto in sem rešil: Image formating
Problem sedaj je, da nimam izvornega fajla, da bi lahko pogledal in primerjal s tem, kar nginx generira.
Evo, fantje in dekline. Nov dan, nov izziv.
V Python-u berem podatke, ki iz izvora pridejo preko nginx preko uwsgi v body-ju od POST requesta, in so v binarni obliki, gre pa za ndjson format.
https://github.com/ndjson/ndjson-spec
In nikakor ne morem iz binarne oblike obrnat v string.
Tole je binarna vrednost, ki jo dobim v fajlu, ki ga zgenerira nginx:
b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff}\x8f\xcdN\xc30\x10\x84\xef<\xc6\x9e\xd3\xc8v\xd6\xf9\xbb\x15q\x07\x89\xf6\xd2\x0b2\xdeE\xb1\x94:\xc5\xb1\x11U\xd5w\xc7\x81\n\xa9\x87\xf6\xfa\xcd\xec\xcc\xce\t\x92#\xe8\xb1\xc3Z\xb7\xb2\x80w\x13\xed\xb0]\x90\xd2\xb5T\x058O\xfc\xfd\x0b`\xcfnt3\x9b`\x877%\x94\x16Z*(`\x8e&\xa69\xebs\xb2\x96\x99\x982\x8c\xc7\x03gD\x93M{\xf6qM\xe4\xa2\x9b\xfcs\xd8\x1e\xc8D\xce\x0ek\xbc\xe5\x91\xe9\xf1\x08\xbdO\xe3X\x00q4n\xccI'\x08l\xd9}1=]\xee3\x94\x97_\xae\xe1\xb9\x00\x0ea\n\xff\x19)\x98\xa5(w\xbfl\xaaRwm%t#\x9a\xd7\xdc\xc8\xfe3qbZ\xc7\xac.\x03VB\xafd\xbd\x91u\x8f\xa2G]\xca\xaa\xc1N*lw\x7f\xb3B\xbcgF\x94\xa8\xeb\x06\x17\xf3\x87\xf3n\x1en\xba\xdb\xb2A\x85ZV\xad\xdc\xc1\xf9\xe1\x07\x15\xf5\x9b\xc8u\x01\x00\x00"
Mislim, da bo zadeva povezana z vsebino, ki jo nginx shrani v fajl. Se pravi, header + data.
Tule sem imel isto in sem rešil: Image formating
Problem sedaj je, da nimam izvornega fajla, da bi lahko pogledal in primerjal s tem, kar nginx generira.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
- spremenilo: HotBurek ()

misek ::
Začetni tag 1f8b08 nakazuje, da imaš gzip stisnjene podatke. Kar bi tudi moral videti v HTTP headerjih.

HotBurek ::
TOOOOOOOOOOO!!! This is so good. 
gzip: to je bila rešitev.
Server (med drugim) v hederjih dobi:
Jst sem bil zgol pozoren na content type.
Naredil sem en sample in dela:
Print screen:
Delam pa tole:
Meilisearch - Working with tasks
Meilisearch - Using task webhooks
Ful hvala za pointer.
Evo, nekaj muske, za ta lepi dan: HÖR BERLIN Lily Ackermann

gzip: to je bila rešitev.
Server (med drugim) v hederjih dobi:
HTTP_CONTENT_ENCODING=gzip HTTP_CONTENT_TYPE=application/x-ndjson
Jst sem bil zgol pozoren na content type.
Naredil sem en sample in dela:
import gzip; file_conten_unzip = gzip.decompress(file_content); logging(loginfo, str(file_conten_unzip)); logging(loginfo, str(file_conten_unzip.decode("utf-8"))); import json; json_loads = json.loads(file_conten_unzip); if type(json_loads) == dict: for key in json_loads: logging(loginfo, str(key) + "=" + str(json_loads[key]));
Print screen:
Delam pa tole:
Meilisearch - Working with tasks
Meilisearch - Using task webhooks
Ful hvala za pointer.
Evo, nekaj muske, za ta lepi dan: HÖR BERLIN Lily Ackermann
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
Zgodovina sprememb…
- spremenilo: HotBurek ()

socialec ::
Kdo bi si mislil - kolega pravijo:
b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff je značilen GZIP glava, kjer:
\x1f\x8b je GZIP magic number, ki označuje začetek GZIP datoteke,
\x08 pomeni, da je uporabljen deflate kompresijski algoritem,
preostali bajti v glavi predstavljajo različne metapodatke, npr. časovni žig, zastavice itd.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [linux] echoOddelek: Operacijski sistemi | 825 (590) | slovencl |
» | WebAssembly postal standardOddelek: Novice / Brskalniki | 9656 (6640) | xmetallic |
» | Pobegla baza z osebnimi in finančnimi podatki več kot polovice ameriških gospodinjsteOddelek: Novice / Zasebnost | 9650 (7292) | MrStein |
» | Kako narediti request z "\" v URL-juOddelek: Programiranje | 2288 (1563) | Horejšio |
» | python-mp3 datotekeOddelek: Programiranje | 1346 (1122) | RunoTheDog |