Download: KnowGmail

Transkrypt

Download: KnowGmail
GmailFS
KNOW HOW
GmailFS: konto pocztowe jako system plików
WIĘCEJ NIŻ
POCZTA
Czemu konto pocztowe o pojemności 1 gigabajta miałoby się marnować?
Program GmailFS pozwala używać konta Gmail jako systemu plików.
FABRIZIO CIACCHI
G
mail, należący do Google system
poczty elektronicznej dostępnej
przez WWW, stworzył zupełnie nową wizję poczty internetowej. Konto pocztowe
Gmail ma pojemność aż 1 GB. Jak mówią jego
twórcy – konto Gmail oznacza, że nigdy nie
pojawi się konieczność kasowania jakichkolwiek wiadomości. Rzecz jasna, użytkownikom
Linuksa 1 GB wolnego miejsca otwiera jeszcze
więcej nowych możliwości. Niedługo po uruchomieniu tej usługi społeczność linuksowa
znalazła dla tego gigabajta zupełnie nowe zastosowanie, całkowicie różniące się od pierwotnych założeń Google. GmailFS, stworzony
przez Richarda Jonesa [2], wykorzystuje tę
przestrzeń dyskową jako zdalny, montowalny
linuksowy system plików.
Czym jest GmailFS?
Z punktu widzenia użytkownika GmailFS wygląda jak zwykły system plików. Jak mówi jego
wania, przeznaczony dla użytkowników chcąautor – „GmailFS obsługuje większość operacych uniknąć komplikacji związanych z twocji na plikach: zapisywanie, odczytywanie,
rzeniem własnego, dostępnego przez Internet
otwieranie, zamykanie, odczytywanie statusu
serwera plików. GmailFS pozwala uzyskać
(stat), tworzenie i usuwanie dowiązań symbodostęp do centralnie przechowywanych plilicznych i twardych (symlink, link i unlink),
ków z różnych komputerów, znajdujących się
obcinanie (truncate) i zmiana nazwy”. Korzyw różnych miejscach – nie musisz przejmostając z systemu plików, można używać zwykłych narzędzi działających w wierszu poleceń, takich jak cp, mv, rm i grep.
W rzeczywistości jednak
GmailFS zapisuje dane
w formie wiadomości e-mail na serwerze Gmail
(szczegółowe informacje
o tym, raczej niezwykłym,
sposobie przechowywania
plików znajdziecie w ramce „Jak działa GmailFS”).
GmailFS to gotowy,
zdalny system przechowyRysunek 1: Plik /etc/fstab i wynik polecenia df.
WWW.LINUX-MAGAZINE.PL
NUMER 17 CZERWIEC 2005
55
KNOW HOW
GmailFS
wać się „serwerową” stroną połączenia. Możesz na przykład wykorzystać konto Gmail,
aby przenieść pliki z domu do pracy, albo żeby mieć dostęp do jakiegoś programu z dowolnego miejsca. GmailFS jest także szybkim
i prostym w obsłudze narzędziem do tworzenia nieformalnych kopii zapasowych plików.
Przygotowanie systemu
Jak wiemy z ramki „Jak działa GmailFS”,
system ten opiera się na dwóch kluczowych
elementach. Zanim zaczniesz z niego korzystać, musisz więc zainstalować:
■ FUSE – narzędzie umożliwiające tworzenie linuksowych systemów plików w przestrzeni użytkownika.
■ libgmail – bibliotekę języka Python, zapewniająca dostęp do konta Gmail.
GmailFS napisany został w Pythonie, potrzebował więc będziesz także interpretera
i plików nagłówkowych języka Python
2.3 (nie 2.4). Wiele dystrybucji Linuksa zawiera Pythona; jeśli twoja do nich nie należy,
krótkie wskazówki znajdziesz w Ramce „Instalowanie języka Python”.
Pobierz FUSE 1.3 ze strony projektu [7],
rozpakuj pliki i zainstaluj pakiet. Uwaga:
aby pomyślnie zakończyć tę operację, musisz
mieć jądro skompilowane ze zródeł - FUSE
zainstaluje dzięki temu moduł odpowiedni
dla danego jądra. Wpisz su, podaj hasło roota, a następnie wpisz następujące polecenia:
Jak działa GmailFS
GmailFS to aplikacja napisana w języku Python, oparta na dwóch istotnych elementach. Pierwszym z nich jest FUSE [3], działające w przestrzeni jądra narzędzie, umożliwiające zakładanie systemów plików w przestrzeni użytkownika. Drugim niezbędnym
składnikiem jest libgmail [4], biblioteka Pythona, umożliwiająca dostęp do konta Gmail
z poziomu aplikacji. GmailFS to połączenie
tych dwóch komponentów. Dzięki FUSE
GmailFS może działać w przestrzeni użytkownika, co znacznie upraszcza kwestie
związane z projektem i implementacją; libgmail daje programowi niewidoczny dla użytkownika lub programisty dostęp do konta
Gmail, umożliwiając zapisywanie i pobieranie danych. Użytkownik widzi więc GmailFS
jako normalny system plików, Gmail zaś - jako zbiór wiadomości e-mail.
Metadane związane z plikiem przechowywane są w polu tematu wiadomości, a dane pliku przechowywane są w formie załącznika.
Ponieważ Gmail ogranicza maksymalny rozmiar załączników, duże pliki trzeba przechowywać w kilku częściach.
56
NUMER 17 CZERWIEC 2005
# tar -zxvf §§
fuse-1.3.tar.gz
# cd fuse-1.3/
# sh ./configure
# make
# make install
Kolejnym krokiem jest instalacja powiązań (bindings) między Pythonem i FUSE.
Umożliwiają one używanie FUSE z poziomu
kodu w Pythonie. Można je pobrać z repozytorium CVS FUSE [8] albo ze strony autora
programu GmailFS, Richarda Jonesa [9]. Po
ściągnięciu odpowiedniego pliku wpisz su,
hasło roota i następujące polecenia:
#
#
#
#
tar -zxvf fuse-python.tar.gz
cd fuse-python/
python setup.py build
python setup.py install
Najtrudniejsza część już za nami. Teraz
musimy ściągnąć bibliotekę libgmail [4] –
potrzebne nam będą pliki constant.py i libgmail.py. Można ściągnąć je z CVS za pomocą
przeglądarki [10]. Po pobraniu najnowszych
wersji plików wpisz odpowiednie polecenia
(korzystając z konta roota), aby przenieść
pliki libgmail do miejsca, z którego Python
będzie w stanie je odczytać:
# cd libgmailCVS/
# mv libgmail.py constants.py §§
/usr/local/lib/§§
python2.3/site-packages/
Instalacja GmailFS
Jesteśmy już gotowi do zainstalowania programu GmailFS. Otwórz przeglądarkę, wejdź
na stronę Richarda Jonesa [2] i ściągnij najnowsze wydanie GmailFS [11]. Rozpakuj pliki i skopiuj je do odpowiednich katalogów.
Wpisz su oraz hasło roota, a następnie:
#
#
#
#
#
tar -zxvf gmailfs-0.3.tar.gz
cd gmailfs-0.3/
mv gmailfs.py /usr/local/lib
mv mount.gmailfs /sbin
mv gmailfs.conf /etc
Kolejny krok to edycja pliku /etc/gmailfs.conf. Można w nim ustawić takie parametry, jak nazwa i hasło użytkownika konta
Gmail oraz nazwa systemu plików. Ten ostatni parametr jest bardzo ważny – GmailFS będzie za jego pomocą przyporządkowywał wia-
WWW.LINUX-MAGAZINE.PL
Instalowanie języka
Python 2.3
Za instalację pakietów języka Python
2.3 odpowiadają następujące polecenia:
W Debianie:
# apt-get install python2.3U
python2.3-dev
W Slackware:
# swaret -install python-2.3.U
4-i486-1
W Gentoo:
v# emerge python
W Mandrake:
# urpmi libpython2.3 libpythonU
2.3-devel
W systemach Fedora i Redhat
(z Apt4Rpm [5]):
# apt-get install pythonU
-devel-2.3.4-13.1
(dostępne są także pakiety RPM i Yum dla
Redhata)
Jeżeli chcesz zainstalować język bezpośrednio
ze zródeł, musisz najpierw ściągnąć plik z kodem zródłowym Pythona 2.3.5 [6]. Za przygotowanie składników programistycznych do
skompilowania odpowiadają poniższe polecenia. Wpisz su oraz hasło roota, a następnie:
#
#
#
#
tar -zxvf Python-2.3.5.tgz
cd Python-2.3.5/
./configure
make
# make install
domości na serwerze do danego systemu plików. Wybierz nazwę, którą trudno będzie odgadnąć (w naszym przykładzie używamy domyślnej nazwy – linux_fs_3). Ponieważ GmailFS grupuje wiadomości zgodnie z nazwą
systemu plików, w ramach jednego konta
pocztowego można utworzyć kilka systemów.
Aby podmontować GmailFS, należy użyć
następujących poleceń:
# mkdir GmailMount
# mount -t gmailfs §§
/usr/local/bin/gmailfs.py §§
GmailMount/ -o username= §§
śgmailuser];password= §§
śgmailpass],
fsname=śfs_name]
(uwaga: jeżeli odpowiednie parametry zostały już zdefiniowane w pliku /etc/gmailfs.conf, można pominąć instrukcje zapisane
wytłuszczonym drukiem)
GmailFS
KNOW HOW
Kompilacja jądra
Aby skompilować i zainstalować jądro ze zródeł, musisz pobrać najnowszą stabilną wersję jądra 2.6.x [13] z Linux Kernel Archives
[12]. Po ściągnięciu pliku w formacie .tar.gz,
wpisz su, hasło roota, a następnie:
#
#
#
#
#
#
#
#
#
mv linux-2.6.x.tar.gz /usr/src
cd /usr/src
tar -zxvf linux-2.6.x.tar.gz
ln -s linux-2.6.x linux
cd linux/
make menuconfig
make
make install
make modules_install
Jeżeli podczas kompilowania jądra pojawiły się
jakieś problemy, warto zajrzeć do wskazówek
„Jak to zrobić” – Kernel-Build-HOWTO [14].
gdzie [gmailuser] i [gmailpassword] to nazwa
i hasło użytkownika konta Gmail, zaś [fs_name] to nazwa systemu plików. Aby podłączać
system plików Gmail automatycznie, trzeba
zmodyfikować plik /etc/fstab. W poniższym
przykładzie dopisaliśmy wiersz, działający
jak instrukcja montowania:
Rysunek 1: Gmail otwarto 1 kwietnia ubiegłego roku, oferując 1 GB przestrzeni dyskowej.
Dokładnie rok później zwiększono ją do 2 GB zapowiadając, że na tym nie koniec.
# nano /etc/fstab
- dodaj poniższy wiersz §§
na końcu pliku/usr/local/bin/gmailfs.py §§
/path/of/mount/point §§
gmailfs rw,user,noauto, §§
username=śgmailuser],§§
password=śgmailpass], §§
fsname=śfs_name]
- naciśnij CTRL+O, aby zapisaćU
zmiany §§
i CTRL+X, aby wyjść z edytora-
(Uwaga: jeżeli odpowiednie parametry zostały już zdefiniowane w pliku /etc/gmailfs.conf, można pominąć instrukcje zapisane
wytłuszczonym drukiem.)
Rysunek 2: Jeżeli filtr został zdefiniowany poprawnie, wiadomości tworzące system plików poja-
Dostosowywanie Gmaila
wią się w podsumowaniu pod ramką edycji filtra.
Po wykonaniu wszystkich tych kroków i ponownym uruchomieniu komputera zobaczysz, że GmailFS jest podmontowany we
właściwym katalogu. Na Rysunku 1 zaprezentowano składnię pliku /etc/fstab oraz wynik polecenia df.
Teraz, kiedy system plików GmailFS już
działa, możemy dopasować parę rzeczy do
naszych upodobań. Po pierwsze, dobrze jest
stworzyć etykietę i filtr, dzięki którym wia-
domości programu GmailFS nie będą przechowywane razem z „prawdziwymi” wiadomościami e-mail.
Zaloguj się na swoje konto Gmail i kliknij
Edit Labels w zielonej ramce po lewej stronie.
W polu tekstowym wpisz np. gmailfs, a następnie kliknij Create.
Przejdź do skrzynki odbiorczej (Inbox)
i zaznacz wszystkie wiadomości, których je-
WWW.LINUX-MAGAZINE.PL
steś nadawcą (Me w polu Sender). Następnie
kliknij More Actions (Więcej operacji) i wybierz Apply Label – gmailfs (Przypisz etykietę – gmailfs). Ten krok jest niezbędny, ponieważ aby utworzyć filtr, musisz ustalić
cechy wspólne wiadomości tworzących system plików.
Kliknij Settings (Ustawienia), następnie Filter (Filtr), a potem – na dole strony – wybierz
NUMER 17 CZERWIEC 2005
57
KNOW HOW
GmailFS
Create a new filter (Utwórz
nowy filtr). Użyj nazwy
systemu plików, którą podaliśmy wcześniej. Składnia filtra wygląda następująco: q=__g__[fs_name]__h__. Kliknij Next
Step (Następny krok).
Jeżeli podane ustawienia są poprawne, w podRysunek 3:
sumowaniu pod ramką
Z punktu
filtra wyświetlone zostawidzenia
ną wiadomości tworzące
użytkownika
system plików (Rysunek
GmailFS
2). Teraz zaznacz opcje
wygląda jak
Skip the Inbox (Archive it)
zwykły system
(Pomiń skrzynkę odbiorplików.
czą (zarchiwizuj ją))
i Apply the label – gmailfs (Przypisz etykietę –
gmailfs). Kliknij Update Filter (Zaktualizuj
filtr).
Korzystanie z systemu plików GmailFS
powinno już przebiegać bez najmniejszych
problemów. Jeżeli chcesz, możesz używać go
w środowisku graficznym, np. GNOME, podłączając go na żądanie podobnie jak zewnętrzne urządzenie USB. Używanie GmailFS w środowisku graficznym przysporzyło
nam jednak paru problemów – w niektórych
Inne zastosowania Gmaila
Także inne projekty wykorzystują system
Gmail w nowatorski sposób. Najbardziej
znanym z nich jest Gallina [15], system do
blogowania, wykorzystujący wiadomości
Gmail jako notki blogowe; popularnością
cieszy się także Goollery [16] - aplikacja
umożliwiająca tworzenie galerii zdjęć. Oba te
programy napisane zostały w PHP i korzystają z biblioteki Gmail-lite [17].
Gmail – inne możliwości
Bardzo zajęci użytkownicy mogą sprawdzać
konto Gmail z urządzeń przenośnych [18].
Jeżeli korzystasz z przeglądarki Firefox, możesz także zmienić arkusz stylów [19] strony
głównej Gmail albo używać rozszerzenia
sprawdzającego, czy nie nadeszły nowe wiadomości [20], bez konieczności otwierania
osobnej zakładki.
Dla użytkowników systemu Windows przeznaczony jest program Gmail Drive [21], działający podobnie jak GmailFS, a także powiadamiający o nadejściu poczty Gmail Notifier
[22], który uruchamia się przy starcie systemu
i działa w tle, umieszczając swoją ikonę w obszarze powiadomień (tacce systemowej).
58
NUMER 17 CZERWIEC 2005
przypadkach duża częstotliwość korzystania
z plików sprawiała, że Gmail uznawał, że jest
obiektem ataku hakerskiego.
Podsumowanie
Gigabajt wolnej przestrzeni dyskowej, dostępny z dowolnego miejsca na świecie? Wydaje się to zbyt piękne, aby mogło być prawdziwe. Zanim jednak na nowo zorganizujesz
swoje środowisko pracy, opierając je na
GmailFS, warto rozważyć ograniczenia takiego rozwiązania. Po pierwsze, jak nietrudno się domyślić, sama koncepcja wykorzystywania poczty elektronicznej do zapisywania
i odczytywania plików jest znacznie mniej
wydajna, niż tradycyjne sposoby ich przechowywania. Po GmailFS nie należy spodziewać
się rewelacyjnej prędkości. Warto także pamiętać, że rozwiązanie to ma charakter eksperymentalny. Nie tworzono go z myślą o wysokiej niezawodności i zastosowaniach komercyjnych. Richard Jones, autor programu
GmailFS, nie zaleca przechowywania w systemie plików GmailFS jedynych kopii ważnych zasobów.
Ponieważ GmailFS nie obsługuje szyfrowania, nie można właściwie liczyć na ochronę prywatności. Nawet jeśli struktury Google odpowiedzialne za bezpieczeństwo wystarczą, aby zabezpieczyć pliki przed dostępem niepowołanych osób, nic nie uchroni
ich przed wyszukiwaniem w nich informacji
marketingowych i demograficznych przez
sam system Google (problem ten dotyczy
zresztą wszystkich systemów pocztowych dostępnych przez WWW – nie tylko systemu
Gmail).
Jeżeli jednak nie przeszkadzają ci te
ograniczenia, możesz znaleźć dla programu
GmailFS wiele użytecznych zastosowań.
Użytkownicy Linuksa dokonali czegoś, co
może doprowadzić do rewolucji koncepcyjnej. Wyobraźmy sobie tylko możliwość korzystania z tych samych plików z domu
i z pracy bez konieczności noszenia ze sobą
pamięci na USB czy płyt CD, albo samouruchamiającego się Linuksa, który umożliwia dostęp do plików z dowolnego miejsca
na świecie.
Jeżeli chodzi o kwestie związane z bezpieczeństwem i wydajnością, nadal będę nosić
ze sobą pen drive’a; GmailFS jest jednak pożytecznym rozwiązaniem dla wielu użytkowników Linuksa. Jeżeli chcesz założyć sobie
konto Gmail, z przyjemnością wyślę ci zaproszenie – napisz na adres [email protected]
(dysponuję 50 zaproszeniami). ■
WWW.LINUX-MAGAZINE.PL
AUTOR
Fabrizio Ciacchi http://fabrizio.ciacchi.it
jest Włochem i studiuje informatykę na
Uniwersytecie w Pizie. Pracuje także jako
konsultant i pisze artykuły poświęcone Linuksowi.
INFO
[1] Gmail: http://www.gmail.com
[2] Strona Richarda Jonesa: http://ltsv-141.
richard.jones.name
[3] FUSE: http://fuse.sourceforge.net
[4] Libgmail: http://sourceforge.net/projects/libgmail/
[5] Apt4Rpm: http://apt.freshrpms.net
[6] Python 2.3.5 do pobrania:
http://www.python.org/ftp/python/2.3.5/Python-2.3.5.tgz
[7] Lista plików FUSE: http://sourceforge.net/project/showfiles.php?group_
id=121684
[8] CVS FUSE: http://cvs.sourceforge.
net/viewcvs.py/fuse/python/
[9] Powiązania między Pythonem i FUSE:
http://richard.jones.name/google-hacks
/gmail-filesystem/fuse-python.tar.gz
[10] CVS Libgmail: http://cvs.sourceforge.
net/viewcvs.py/libgmail/libgmail/
[11] GmailFS do pobrania: http://ltsv-141.richard.jones.name/google-hacks/gmail-filesystem/gmailfs-0.3.tar.gz
[12] Linux Kernel Archives: http://www.kernel.org
[13] Jądro Linuksa 2.6.x do pobrania: http://
www.kernel.org/pub/linux/kernel/v2.6/
[14] Kernel-Build-HOWTO: http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html
[15] Gallina: http://ion.gluch.org.mx/files/Hacks/gallina
[16] Goollery: http://www.wirzm.ch/goollery
[17] Gmail-lite: http://gmail-lite.sourceforge.net
[18] Pocket Gmail: http://gmail.wiggster.com
[19] Skórki dla Gmaila: http://persistent.info/archives/2004/10/05/gmail-skinning
[20] Rozszerzenie Gmail Notifier: https://addons.update.mozilla.org/extensions/moreinfo.php?id=173
[21] Gmail Drive: http://www.viksoe.dk/code/gmail.htm
[22] Gmail Notifier: http://www.google.
com/downloads

Podobne dokumenty