Będzie rant, rant po macOS, WebDAV i po ChatGPT ;-)
Wstęp ;-)
W pracy mam DUŻO plików JSON, tak z ~200 GB na dysku. Używam sztuczek takich, że mam np. skrypt który kompresuje je do GZIP, a mój Python który to czyta "umi" czytać JSONa z pliku tekstowego i takiego GZIPniętego.
Ale fajnie by było móc działać z tymi plikami bez takiej zabawy, bo np. zaglądanie do takiego GZIPed pliku jest trudniejsze, bo open plik.gz i dopiero open plik....
Idealnie jakby dla macOS była możliwość zaznaczenia folderu jako takiego, który powinien być kompresowany.
Windows to wspierał lata temu (nie wiem czy nadal), i macOS podobno też... ale już tego nie ma.
Więc chciałbym mieć swój system plików który by to wspierał.
Próbowałem atakować problem z FUSE (Filesystem in User Space), ale różne dziwne rzeczy się tam działy...
Dziś w nocy miałem takie coś... a co jakby tak naprawdę mieć np. SMB albo WebDAV które by działały lokalnie i kompresowały pliki u siebie, ale było to widoczne w systemie plików?
Tak będzie wolne, ale pozwoli na zabawę...
Okazuje się, że macOS ma nawet mount_webdav...
To poszedłem do ChatGPT i poprosiłem o serwer WebDAV... po długich bojach i ręcznych zmianach mam...
I taki klient jakim jest ForkLift 4 potrafi się doń podłączyć i tworzyć pliki.
Ale mount_webdav co prawda mountuje system plików, może czytać pliki, może tworzyć katalogi... ale jak próbuję skopiować tam plik czy utworzyć plik to robi PUT z content-length 0... plik się tworzy, ale macOS wtedy płacze i nie do końca tłumaczy czemu.... "nie do końca" to taki eufemizm na "nie tłumaczy" ;-)
robi (dla file7.txt):
PROPFIND /file7.txt (2 razy go robi)
dostaje 404 bo pliku nie ma jeszcze
PUT /file7.txt z 0 content length
dostaje 201
ja mam plik o długości 0
PROPFIND /._file7.txt
dostaje 404 bo nei mam takiego czegoś
LOCK /file7.txt
tu dostaje 501, miałem kawałek który to implementował, ale nie wydaje się by coś robił, no i LOCK nie jest obowiązkowy jak rozumiem
PROPFIND /file7.txt
dostaje 200 z opisem pliku w WebDAVowym, z rozmiarem w tym xml ustawionym na 0 bo taki jest rozmiar tego pliku....
wtedy już odpuszcza jak się wydaje i robi PROPFIND /
a w cmd line dostaję Interrupted system call.
No i teraz rantuję:
- macOS za to, że choler wie czemu mu to nie chce działać,
- WebDAV za to, że jest tak wyspecyfikowany, że większość rzeczy by można było opisać jako "DOBRZE BY BYŁO GDYBY" ;-)
- ChatGPT za to, że pisanie z nim jest trudne, tzn. ten pierwszy zryw i później proste poprawienie są często bardzo super, ale później obsługa corner case'ów i podobne są trudne, ogólnie dostajemy kilka set linii kodu i się trzeba w tym jakoś odnaleźć...
Podobne postybeta
PROPFIND, czyli jak przechytrzyć HttpURLConnection
Coś jest nie tak z komputerami
Robimy z telefonu/tabletu z Androidem serwer WebDAV ;-)
Mały rant na macOS, Swifta i sandbox ;-)
GZIPem w plika z pomocą ChatGPT ;-)
Brak komentarzy:
Prześlij komentarz