Problem z zapisaniem plików w fuse przy użyciu paperclip

Przy użyciu fuse i fuserb staram się stworzyć dostęp do bazy plików z poziomu systemu. Czy może ktoś zgrabnie powiązał fuse z paperclip’em? W sumie to sprawa jest z wyłapaniem to co z “body” w metodzie write_to i zapisanie paperclip’em.

Nigdy nie pracowałem nad strumieniami binarnymi i mam problem z zapisaniem do pliku.

Forumowicze liczę na kontruktywne wskazówki :slight_smile:

Nie bardzo rozumiem o co chodzi, linux widzi to co przez fuse zamontowane jako zwykły zasób systemowy, niczym się nie różni od zwykłego zasobu.

Może chodzi o uprawnienia? Bo user który przez paperclip ładuje pliki ma takie uprawnienia jak serwer, więc może nie mieć dostępu do zasobów.

Bo tak nie bardzo wiem czego pytanie dotyczy, ale że po kilku piwkach jestem to też swoje robi, więc może po prostu nie rozumiem pytania ;]

Dokładnie, z “widocznością” nie ma problemów, montuje, listuję, kasuję. Praktycznie większość opcji jest dostępna.

W sumie to mam problem z zapisaniem.

Może własnie z tym ktoś sobie poradził?

a jak pisałem wyżej sprawdzałeś czy user który odpala serwer ma prawo do zapisu do zasobów fuse?

Dzieki za odpowiedzi. Tak z uprawnieniami nie ma problemu, mam dzialajace przyklady np. odczyt i zapis z yamla. Moge tez wszystko robic poprzez biblioteke File.

W fusefs jest metoda write_to, ktora przyjmuje strumien i tu mam problem, bo chyba nie do konca wiem jak to prawidlowo przekazac do paperclip’a.

Hmm a nie mozesz go tym write_to(nazwa_pliku) zapisać gdzies, i zrobic ukryte pole w formie które ma value ustawione na sciezke do tego pliku. Bo to wydaje sie najprostsze rozwiazanie.

[code=ruby]<% for … %>

a = write_to(a)

<% end %>[/code]
Koncepcyjnie coś takiego?

@gotar wiesz koncepcyjnie to ma sens i mogloby rozwiazac.

Dzieki, ze sie zaanagzowales pomoc.

Przegladam to co sam wczesniej napisalem i chyba sytuacja wymaga szerszego wyjasnienia.
Faktycznie to montuje wirtualny katalog i wyswietlam pliki z bazy. Eksperymentuje z wirtualnym ftp gdzie juz uzyskalem mozliwosc kasowania plikow i oczywiscie z ruby zapisuje zmiany w bazie, a Paperclip tutaj sie dobrze zachowuje.

Nieco sie przyjrzalem co wyprawiam i widze, ze problemem jest moja zabawa z Paperclip’em, jednak nadal mam problem z zapisaniem plikow.

Zapomnijmy na chwile temat Fuse i skupmy sie co i jak omijam, ze nie moge zapisac Paperclip’em plikow. Oczywiscie przypomne, ze cala zabawa jest w systemie, a wszystko bez serwera www.

Zmeczylem sie :smiley:

No to może troche kodu, kawałem który zapisuje, przynajmniej powinien pokaż. Powinno pomóc.

Dzieki za zaangazowanie.
Moze sie przydac innym w temacie Fuse. W fuserb zapisuje sie poprzez wite_to. Nic nie znalazlem na necie, wiec ponizej podaje proste rozwiazanie zapisywania dzieki Tempfile.new. Sprawa sie troche gryzie z Paperclip’em, ale proste nadpisanie Tempfile zamknelo temat.

[code]def write_to(path, body)
#…

tempfile = Tempfile.new('stream')
tempfile << body

asset = Asset.new
asset.attachment = tempfile
asset.save

tempfile.close(true)

#...

end[/code]
Jesli ktos cos przypadkiem znajdzie na necie, to zapraszam do dolaczenia linkow, celem wzbogacenia tematu Fuse + fuserb + Paperclip.

Wyskoczył następny problemik. Niestety przeglądając katalogi poprzez FTP nie widać katalogu zamontowanego poprzez Fuse.
A miało być tak tak pięknie :frowning:

Uprawnienia są ok, więc gdzie jest problem?

Chyba pozostaje mi napisać własny serwer FTP, który będzie wyświetlał katalogi bezpośrednio z Fuse.

Musisz skorzystać z curlftpfs. Mały poradnik jak to zrobić:

http://linux.byexamples.com/archives/344/mounting-ftp-host-to-local-directory-on-top-of-fuse/

Tak znam i w sumie dobra sprawa tam gdzie jest dostep do curl’a a nie ma dostepu np. do gvfs-fuse-daemon. Czyli ogolnie dobre przy montowaniu zewnetrznego zasobu ftp z “domowego” linuxa na ktorym nie ma gnome.

W moim przypadku jest dokładnie odwrotnie. Na zewnetrznym serwerze mam podmontowany katalog fuse i serwer ftp. Stad tez moj problem z widocznoscia katalogu fuse w katalogach normalnie widocznych przez serwer. Ftp rzuca bledami, cos w stylu, ze dla niego katalog podmontowany fuse’em jest nieznanym urzadzeniem. Dokladnie nie pamietam bledu.

Ale dzieki, ze wrzuciles link do curlftpfs, pewnie sie komus przyda.

No to może po prostu problem z konfiguracją. Zmień może też podejście. Przejdź może na sshfs i nim podmontuj co musisz w konfiguracji daj odpowiednie prawa i podąrzanie za linkami itp i tyle powinno być to widoczne przez ftp