Search code examples
google-drive-apigoogle-oauthgoogle-colaboratory

Persistent authorisation for mounting Google Drive in Google Colab


I'm using Google Colab and need to restart my notebook at least once a day due to their usage limits.

To mount my Google Drive I have the following code:

from google.colab import drive
drive.mount('drive')

I then get a prompt:

Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=xxxxxxxxx....

Enter your authorization code: ___________________________________________________


How can I authorise only once and have that authorisation remembered?

Ideally, that authorisation will have already happened as I'm signed in to Gmail and I can just specify the account email address of the Drive to mount.

However any solution of persistent authorisation where I don't store the auth code in the notebook would be great.


Solution

  • You can't set it to only authenticate once and stay that way for a new runtime, because Colab runs on a VM that is recycled periodically. You can make sure force_remount is set to False so it doesn't unnecessarily ask you to reauthorize:

    drive.mount('/content/gdrive', force_remount=False)
    

    But any time you reset the runtime, you will need to reauthenticate with a different authorization code.