Tuesday, August 26, 2008

goofs

Ok so you want to use your google account as a filesystem?
First thing you should do is to download the needed files and remove the unneeded one.

sudo apt-get install python2.5 python-fuse subversion
sudo apt-get remove python-gdata
Ok now go ahead and grab the sources for goofs and gdata-python-client

svn checkout http://goofs.googlecode.com/svn/trunk/ goofs-read-only
svn checkout http://gdata-python-client.googlecode.com/svn/trunk/ gdata-python-client

Now we are going to build and install it all:


cd gdata-python-client
sudo python setup.py install
#python setup.py install --home=~
#and set your PYTHONPATH to include your home directory.
cd ../goofs-read-only/goofs
sudo python ./setup.py install

Now lets run it.

mkdir ~/googlefs
python /usr/lib/python2.5/site-packages/goofs/goofs.py ~/googlefs

Or if you would like you can just do it all at once with this script, just save it to a file named makegoofs.sh, chmod +x makegoofs.sh and run it.

sudo apt-get install python2.5 python-fuse subversion
sudo apt-get remove python-gdata
svn checkout http://goofs.googlecode.com/svn/trunk/ goofs-read-only
svn checkout http://gdata-python-client.googlecode.com/svn/trunk/ gdata-python-client
cd gdata-python-client
sudo python setup.py install
#python setup.py install --home=~
#and set your PYTHONPATH to include your home directory.
cd ../goofs-read-only/goofs
sudo python ./setup.py install
mkdir ~/googlefs
python /usr/lib/python2.5/site-packages/goofs/goofs.py ~/googlefs

This can be run multiple times, just make another directory and run it pointed at that directory instead.


UPDATE: Just so everyone understands, this is what the tree looks
like under your mount point after running this(some results ommitted, basically so I can show the structure):



.:
blogs calendars contacts documents photos presentations spreadsheets

./blogs/moarfoo:
CALL TO ARMS goofs working
Cant get to me booty! ARGH! Invitation to view B Man's Gallery
cellnet puppy chillun

./blogs/moarfoo/goofs:
comments content

./calendars:
bhgraham1@gmail.com

calendars/bhgraham1@gmail.com:
30_Days 7_Days Today

calendars/bhgraham1@gmail.com/30_Days:
calendars/bhgraham1@gmail.com/7_Days:
calendars/bhgraham1@gmail.com/Today:

./contacts:
Benjamin Graham RandomContact

./contacts/Benjamin Graham:
address email notes organization phone

./contacts/Benjamin Graham/address:
home other work

./contacts/Benjamin Graham/email:
home other work

./contacts/Benjamin Graham/phone:
home other work

./documents:

./photos/private/Blogger Pictures:
./photos/public:

./presentations:

./spreadsheet




3 comments:

Alex Goretoy said...

Sweet now I can access my Google account from a file system. Plus you can use the files in python scripts. Google interface with custom python module, as you will. Very nice. I like python code. It's very nice to look at. Thank you, Ben.

ScienceMan said...

OK, but it works as distributed only for regular Google accounts. It only pulls contacts when used with a Google Apps for Domain account. The rest of the areas (documents, etc.) return either blank files or a html file containing the logon dialog when used with a Google Apps account. Looks like more work is needed here to work with GApps accounts.

Anonymous said...

Hi glad to see some people trying this project I created. You might want to check out version 0.7.1. It is much improved over the 0.6 python version. Soon I will publish 0.7.2 which fixes the empty documents (google just fixed this bug - http://code.google.com/p/gdata-issues/issues/detail?id=70). You will be able to export your document in any of the formats supported on the web. So please keep and eye out for 0.7.2 and thanks for blogging out goofs.