Google Doc Mount

I was bored and made this video and this gtk gui for mounting google docs as a folder on your computer.

Anyway, please watch my video, mute the sound it’s nothing but static.

View Video on Blip

[1] PPA: ppa:doctormo/ppa
[2] Package: gdocs-mount-gtk

Now be warned, if you try this, remember that it’s not a supported piece of software, bugs aren’t likely to be fixed (unless you fix them of course) the code is available and it should work on Lucid. It won’t be ported to any other versions (at least by me) but it should be easy to recompile everything for other versions anyway.

I will answer questions here or by email. Your thoughts?

55 thoughts on “Google Doc Mount

  1. Hi,

    You really did a good thing. Now I have more cloud space integrated to my ubuntu desktop.

    But I’m just wondering, if I put some file in that google folder (nautilus) is it sync together with the my google docs.

  2. This is really cool. Looking forward to see the gvfs version, do you have a link for that?

    One comment with regards to authentication. From what I could see you are prompted for your Google username and password. I assume that these get saved locally, ideally to the keyring, maybe to a plain text config file.

    A much safer solution is to use OAuth. Only a token is issued to the application and this token has limited access, only to docs. You, as the end user, can track all the tokens that have been issued for you and revoke them if you wish. Much, much better than handing out your main credentials.

  3. I copied an odt file into the Nautilus mount – and it copied into my GDocs account just fine.
    This is great! Thanks.

  4. marluss: The username/password don’t get saved at all, you have to type it in each time.

    I don’t like OAuth, it’s not secure enough. It’s a lovely idea that damaged by the fact that the system assumes the desktop is unsecured and that the server is secure. It’s totally the wrong way round IMO. I also dislike the requirement to launch a browser, bleh!

    Keys I don’t mind though.

  5. so… fyi.

    Last summer for GSoC there was a project to actually implement this as a gnome gvfs backend making use of libgdata and patch nautilus to understand the synamtics of the new gvfs backend.

    It seems to be lingering in gnome bugzilla and just needs to be championed.

    What you have going there is a nice hack. but someone needs to finish off the work to expose this via gvfs. You want to be that person?

  6. Jef: I’m absolutely aware of the GSoC project, I had a look through it and tried to get it to work. In fact half of my day of making this hack was working with that project, working with gvfs and nautilus code. I really was glad to see the back of that code, it’s so badly thought out that I’m surprised at the level of basic code design patterns that have been ignored. I suspect a raw C programmer was involved. I mentioned in my video that there was a better way to do it and that this was a hack.

    I am not that person to do this, but perhaps the video and the hack will prompt someone else to.

  7. The fact that the username and password are not saved helps a bit, but still problematic:
    – user is bugged every time, if this ends up being widely used I am sure credentials will be saved
    – with username and password the application has access to everything, not only docs, I have to trust that the app will not touch my email, contacts, calendar, etc

    OAuth is not secure? Can you explain.

    Yes, the browser popup is annoying, but at the same time has huge benefits:
    – user most likely has an active session, so no need to type username and password, just click the Approve button
    – on some site users may not authenticate with username and password (maybe they need second factor, or federation with another site), OAuth and browser makes you future proof

  8. Hey Mariuss,

    For me OAuth’s requirement on the browser is a deal breaker. If it can’t authenticate on the desktop then I don’t think it’s secure. A web browser is fundermentally displaying and running untrusted code and formatting. At least the app will have had some vetting and peer review before hand.

    Until the OAuth guys figure this problem out and stop trying to make the desktop into a browser window, then I’ll stop my apps asking for usernames and passwords.

  9. Interesting & thx 4 showing.
    I tried it & found
    * its quite slow to traverse nested folders
    * Only some files can be opened eg double clicking a pdf just throws an error message. Doing same on an .odt opens in Open Office just fine.
    * Copy/moving files from GDocs to the desktop just throws an error message.

    Not practical to use this but an interesting starting point for some one to develop into a truly useful software.

    Meanwhile its back to OpenOffice + DropBpx for me.


  10. I had problems trying to install the PPA. I tried to add PPA and it was successful and accepted the rsa key. I did an apt-get update and a sudo apt-get install gdocs-mount-gtk but there wasn’t such a package. The deb files have lots of dependency problems too and would link to some other deb files. I don’t want to go around looking for and installing the files. What apt-get install commands should I use ? How should I resolve this problem ?

  11. Thoth: are you using Ubuntu Lucid? You’d get errors with Karmic, Maveric or any other version.

    Otherwise, I’m not the person to ask, try #ubuntu on irc.

  12. Regarding OAuth…

    Try to look at the whole problem from the point of view of the end user.

    I install an application that I download from a blog post, when it starts it asks my Google username and password. It is asking a lot. Can I really trust that this app does what it says it does? Is it going to save these credentials? Where?

    I the applications starts a browser and sends me to Google to give permission then most of these problems go away. I never hand out credentials to an unknown app, I give limited permissions for exactly what the app needs, I can track and revoke these permissions later on. In most cases I don’t even have to type in a username and password in the browser because I already have an active session with Google.

    On top of all this:
    – if I use a password manager and random unique passwords for each site then with a browser everything just works, if I have to give credentials to some other app then it is a pain
    – if I happen to use two factor authentication then things again just work, the app does not need to implement all kinds of two factor schemes
    – if I use federation, I login to Google from a 3rd party, so basically I have no password stored at Google, things again just work, a desktop app cannot handle this case at all

    Leaving all this aside, why is it more secure for an app to grab my credentials and then use them with a web service than me going with a browser to Google and handing back to the app an access token? What exactly can go wrong here? In both cases ultimately it is some Google server checking the credentials. If the browser is compromised then all is lost anyhow.

    You said you are OK with keys. Well, that’s what OAuth is all about. Your app gets a key (access token) that can be used instead of username and password. If you don’t like the idea of starting a browser, think of that as just a convenience for the user. You can print out a URL, ask the user to copy into browser and at the end copy a verification code back to your app. The URL you are printing out is nothing but the authorization page with some parameters that say who the application is and what permissions it needs.

    OAuth 2 is coming out pretty soon and it is much simpler to use than OAuth 1, no need to deal with signatures but you must use SSL.

    We can continue this discussion offline if you prefer, just send me an email. I really think that OAuth is a perfect fit for applications like these and if I am wrong then I definitely want to be convinced.


  13. Drak: To unmount you go to the command line and type in `gumount ~/.local/gdocs/*`

    Sorry there ain’t an easier way to do it.

  14. Pingback:
  15. Hi. Great video!!!!!!! I downloaded it, its fantastic! I’ve been trying to find a screen recorder for Ubuntu and I could never find one. What did you use to record that? Software?

  16. An interesting idea, but it still has very limited use. Docs created via google fail to open, and once docs have been uploaded they again fail to open. The only thing that works great is drag’n drop uploading of docs.

    ps. My nautilus just crashed 🙂

  17. Matti: Yes I’m aware of the issues, this functionality needs to be done correctly. But that needs money eh to pay for the programming.

  18. Hi man, ur work seems really nice ‘n’ cool but do not work for me…

    when I put my credentials I get this error:

    TypeError: destroy() takes exactly 1 argument (2 given)

    how I can solve that?
    thx a lot

  19. Excellent add on for Nautilus 😀 but I can’t see the documents shared by others.. Or maybe I’m doing something wrong 🙁

  20. Hi, thanks for your time!!
    It is working fine. The only problem is that the subfolders are appearing as “empty” and i cannot see their contents.

    Thank you

  21. You definitely don’t need a browser to use oauth, whatever HTTP client lib + oauth, will do. I have to agree with your opinion on flawed concept assuming trusted server, but it works both ways. You can switch consumer/provider if you have control over server. The only issue is that google is provider in your case, and if you use google docs, you have to assume that it is a trusted server.

  22. Added the repository, refreshed with apt-get update, but
    “E: Unable to locate package gdocs-mount-gtk”
    Did I miss something? Running on Ubuntu 10.10

  23. It runs also on Natty (Alpha, 11.04), so it should run on Maverick Meerkat too. The thing is you have to edit sources and under doctormo’s ppa change the distribution to Lucid.

  24. How can I do that? I was reading about it, but I didn’t found anything. Could U send me a HowTo o something like this?
    Thanks a lot!

  25. For 10.10 try this:
    1. sudo gedit /etc/apt/sources.list.d/doctormo-ppa-maverick.list
    2. replace “maverick” with “lucid” (without “”); save changes
    3. sudo apt-get update
    3. sudo apt-get install gdocs-mount-gtk

  26. Is this still being maintained? Doesn’t seem to be available in Ubuntu 11.04.

Comments are closed.