Jaký WebDAV server (nginx)?

Snow

Jaký WebDAV server (nginx)?
« kdy: 28. 08. 2015, 15:46:26 »
Do své aplikace potřebuji zprovoznit vzdálený přístup k souborům uživatele, jako nejlepší řešení se mě jevil webdav. Jelikož jako webserver používám nginx, koukal jsem se po dostupnosti webdavu tam. V základu funguje, co sem zjistil (je zapotřebí tedy nginx s podporou webdavu zkompilovat...) jenže jak sem posléze zjistil, základní modul nepodporuje metody PROPFIND a OPTIONS, které jsou využívány klientama, jak ve windows, tak v linuxu (nautilus...)
Po chvíli googlení jsem našel modul který toto řeší https://github.com/arut/nginx-dav-ext-module jenže poslední commit kodu je před dvouma rokama, byl sem tedy s funkčností skeptický. Po kompilaci sem zjistil že sem sice z klientů k webdavu přístup získal, ale bylo to tak děsne zabugované, že na nautiusu sem neustále musel odklikávat že přepisuji již existující soubory, i když složka kam sem kopíroval žádný soubor neobsahovala a ve windows mě to pro jistotu hlásilo nesmyslné "Ze zdrojového souboru nelze číst.", Tedy je to nepoužitelné.

Řešil někdo něco podobného? Používáte webdav a jakej server?
Potřebuju jen to aby server uměl rozlišovat přihlášené uživatele a podle toho ji umožňovat editovat jen svou složku.
Nejlépe pro mě by bylo kdyby se mě to podařilo rozjet pod nginx, ale pomalu začínám pokukovat po jinejch možnostech, kde nginx by byl jen jako proxy


Zopper

  • *****
  • 657
    • Zobrazit profil
Re:Jaký WebDAV server (nginx)?
« Odpověď #1 kdy: 28. 08. 2015, 16:47:09 »
S tímto moc velkou zkušenost nemám, ale čistě teoreticky - OwnCloud má myslím php implementaci webdav. Takže možná by šlo kouknout se i tímto směrem.

Ale osobně bych se spíš podíval po nějakém webdav serveru třeba v pythonu a nginx použil jen jako tu proxy.

Snow

Re:Jaký WebDAV server (nginx)?
« Odpověď #2 kdy: 28. 08. 2015, 16:57:46 »
Owncloud mě ukradl tak měsíc života, jeho prasácké implementace čehokoliv bych už v životě nechtěl vidět.
Ono původně má aplikace využívala právě owncloud, jenže to bylo tak nechutně pomalé a tak nechutně mě to vytěžovalo server, že sem se rozhodl vydat jinou cestou...

Pythoní webdav server bych uvítal, má někdo zkušenosti? NErad bych se zase zasekl jako minule s owncloudem...

kk

Re:Jaký WebDAV server (nginx)?
« Odpověď #3 kdy: 28. 08. 2015, 17:40:24 »
ahoj
nginx ma webdav modul v sobe (viz http://nginx.org/en/docs/http/ngx_http_dav_module.html )
tento modul neni povolenej automaticky, tzn abys ho moh pouzit budes muset nginx prekompilovat s parametrem --with-http_dav_module 

ale stejne je to na houby, protoze takto naimplementovany webdav nepodporuje locking, ( https://greenbytes.de/tech/webdav/draft-reschke-webdav-locking-latest.html ) a nektere os ti to diky tomu pripoji read only ( a vubec bez lockovani se to nehodi jako sdilene uloziste ve kterem se hrabe vice lidi najednou)

takze nakonec jsem pouzil sabredav coz je implementace webdav protokolu pomoci php (doufam ze se vyjadruju spravne;)
http://sabre.io/dav/

pokud pouzijes sabredav, tak je vhodne aby jsi nepouzival ten dav modul pro enginx, o kterem pisu v prvnim odstavci, aby se ti to navzajem nebilo;)

pokud budes chtit poradit s instalaci tak kdyztak napis, mam to rozjete na vpsce takze muzu pastnout konfiguraci (pouzivam archlinux)

Snow

Re:Jaký WebDAV server (nginx)?
« Odpověď #4 kdy: 28. 08. 2015, 17:58:52 »
dík určitě kouknu, ale raději bych spíš právě implementaci třeba v pythoně, nemyslím si že php je dobré používat na tyto serverové věci...


kk

Re:Jaký WebDAV server (nginx)?
« Odpověď #5 kdy: 28. 08. 2015, 18:31:03 »
ok tak pak napis u ceho si nakonec skoncil.
hlavne by mne zajimalo jak ti pojede pripojovani webdav uloziste pomoci davfs, me to pri praci s velkymi soubory seka uicko.

(i kdyz ted kdyz si ctu release info k nove verzi tak tam pisou ze uz to mozna opravily:
Work around a bug in the fuse kernel module. This bug caused I/O-errors, when an application tried to write large blocks of data.
budu to muset z novu vyzkouset)

Frantisek Havel

Re:Jaký WebDAV server (nginx)?
« Odpověď #6 kdy: 28. 08. 2015, 18:49:19 »

karel

Re:Jaký WebDAV server (nginx)?
« Odpověď #7 kdy: 28. 08. 2015, 19:07:58 »
cs, ja nakonec pouzivam php sabre https://github.com/fruux/sabre-dav

mas moznost si sam z dostupnych objektu ten server slozit, navic muzes chytat eventy a na ty reagovat, daji se pak delat kouzla, jako vyfiltrovat nektere soubory, podle uzivatel ukazat slosky a podobne.

jo na ubuntu muzes pouzit i balicek

apt-get install nginx-extras 

ten webdav a dalsi veci obsahuje

Snow

Re:Jaký WebDAV server (nginx)?
« Odpověď #8 kdy: 28. 08. 2015, 20:26:08 »
ok tak pak napis u ceho si nakonec skoncil.
hlavne by mne zajimalo jak ti pojede pripojovani webdav uloziste pomoci davfs, me to pri praci s velkymi soubory seka uicko.

(i kdyz ted kdyz si ctu release info k nove verzi tak tam pisou ze uz to mozna opravily:
Work around a bug in the fuse kernel module. This bug caused I/O-errors, when an application tried to write large blocks of data.
budu to muset z novu vyzkouset)

Snow

Re:Jaký WebDAV server (nginx)?
« Odpověď #9 kdy: 29. 08. 2015, 00:15:27 »
ahoj
nginx ma webdav modul v sobe (viz http://nginx.org/en/docs/http/ngx_http_dav_module.html )
tento modul neni povolenej automaticky, tzn abys ho moh pouzit budes muset nginx prekompilovat s parametrem --with-http_dav_module 

ale stejne je to na houby, protoze takto naimplementovany webdav nepodporuje locking, ( https://greenbytes.de/tech/webdav/draft-reschke-webdav-locking-latest.html ) a nektere os ti to diky tomu pripoji read only ( a vubec bez lockovani se to nehodi jako sdilene uloziste ve kterem se hrabe vice lidi najednou)

takze nakonec jsem pouzil sabredav coz je implementace webdav protokolu pomoci php (doufam ze se vyjadruju spravne;)
http://sabre.io/dav/

pokud pouzijes sabredav, tak je vhodne aby jsi nepouzival ten dav modul pro enginx, o kterem pisu v prvnim odstavci, aby se ti to navzajem nebilo;)

pokud budes chtit poradit s instalaci tak kdyztak napis, mam to rozjete na vpsce takze muzu pastnout konfiguraci (pouzivam archlinux)
nakonec sem testnul https://github.com/mar10/wsgidav/ jenze to vytvari soubory pod rootem coj je pro me neprijatelne a pod jinym userem to nejde pustit... takze  zkusim to sabre

Snow

Re:Jaký WebDAV server (nginx)?
« Odpověď #10 kdy: 29. 08. 2015, 12:38:43 »
jo da se tam nastavit na jakem portu to bezi a tim padem muzu pustit i pod jinym uzivatelem, nicmene sem tam dodelal moznost si uzivatele zvolit v configu, vyhoda je ze jak je to psane v pythonu tak tam snadno dodelam i overovani proti me aplikaci...

Takze dik za rady pouzil sem nakonec to.

ByCzech

Re:Jaký WebDAV server (nginx)?
« Odpověď #11 kdy: 29. 08. 2015, 13:37:03 »
jo da se tam nastavit na jakem portu to bezi a tim padem muzu pustit i pod jinym uzivatelem, nicmene sem tam dodelal moznost si uzivatele zvolit v configu, vyhoda je ze jak je to psane v pythonu tak tam snadno dodelam i overovani proti me aplikaci...

Takze dik za rady pouzil sem nakonec to.


WSGI jde propojit třeba právě s NGINX nebo s jiným web serverem, který obsahuje WSGI. Takže to může běžet na portu 80 i bez root práv...

Snow

Re:Jaký WebDAV server (nginx)?
« Odpověď #12 kdy: 29. 08. 2015, 19:36:30 »
Jo to je fakt.
Protlačil sem tím 13 gigovj soubor, takže se zdá že je to funkční! :-)

Jen u win7 mám problém že neukazují (respektive blbě ukazují) průběh nahrávání, ale to předpokládám je problém win ne toho webdav serveru...
Má někdo zkušenosti s win klientem?
(Vyřeším to asi tím že na win budeme používat totalcomander, kterej bude předpokládám OK...)

Re:Jaký WebDAV server (nginx)?
« Odpověď #13 kdy: 31. 08. 2015, 20:02:16 »
nginx, php5-fpm, owncloud, mysql, nic sem do nginxu nedokompilovaval ani nepridaval, rychlost oproti variante s apache je docela videt ale asi by to slo jeste vic vytunit

kk

Re:Jaký WebDAV server (nginx)?
« Odpověď #14 kdy: 31. 08. 2015, 21:06:15 »
me to ve win i v linuxu pres davfs delalo to, ze i nekolikagigovy soubor se uploadnul strasne rychle (za par sekund), ale fyzicky na serveru byl k dispozici az po delsi dobe, kdy se tam skutecne prekopiroval. myslim ze ti klienti pouzivaji nejakou cache, a zobrazuje se prubeh kopirovani do ty cache.