glotlabs / gdrive

Google Drive CLI Client
MIT License
1.53k stars 92 forks source link

gdrive

Overview

gdrive is a command line application for interacting with Google Drive. This is the successor of gdrive2, though at the moment only the most basic functionality is implemented.

Community

Join our discord server to discuss everything gdrive.

Sponsor

Help keep this project alive. By sponsoring the gdrive tier you will help support:

Getting started

Requirements

Install binary

Add google account to gdrive

Using gdrive on a remote server

Part of the flow for adding an account to gdrive requires your web browser to access localhost:8085 on the machine that runs gdrive. This makes it tricky to set up accounts on remote servers. The suggested workaround is to add the account on your local machine and import it on the remote server:

  1. [local] Run gdrive account add
  2. [local] Run gdrive account export <ACCOUNT_NAME>
  3. [local] Copy the exported archive to the remote server
  4. [remote] Run gdrive account import <ARCHIVE_PATH>

Credentials

Gdrive saves your account credentials and tokens under $HOME/.config/gdrive3/. You don't usually need to use these files directly, but if someone gets access to them, they will also be able to access your Google Drive. Keep them safe.

Gdrive on virtual machines in the cloud

There are some issues communicating with the Drive API from certain cloud providers. For example on an AWS instance the api returns a lot of 429 Too Many Requests / 503 Service Unavailable / 502 Bad Gateway errors while uploading. While the same file uploads without any errors from a Linode instance. Gdrive has retry logic built in for these errors, but it can slow down the upload significantly. To check if you are affected by these errors you can run the upload command with these flags: --print-chunk-errors --print-chunk-info.