niedziela, sierpnia 04, 2024

Głupi macOS, głupi WebDAV, głupi ChatGPT ;-)

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źć...
 Koniec rantu, na razie ;-)



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