Google Drive CLI Uploader
gupload - Google Drive CLI Uploader
Our motivation to create the gupload tool was the deployment of the GitLab CI artifacts to our Google Drive disk. The tool is not limited to this use-case though. It is a simple Python 3 command-line utility ingesting file names and their respective path arguments. Those are uploaded to Google Drive via Google service account (recommended approach by Google) and an optionally specified folder (through its ID).
The secret file is accessed via the environmental variable
GOOGLE_APPLICATION_CREDENTIALS and it should be set prior the program execution:
$ export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json
- Python 3 + PIP
- Enabled Google Drive API (you can do it in the Google Cloud Console)
- Google service account (you can do it in the Google Cloud Console)
- Credential JSON file to the service account
- Configured environmental variable
GOOGLE_APPLICATION_CREDENTIALSto the service account credentials
Install/upgrade the tool from PyPI using:
$ pip3 install --upgrade gupload
$ gupload --help Usage: gupload [OPTIONS] [FILES]... Options: --to ID Target folder identifier. [required] -f, --file <NAME PATH>... Input file(s) to be uploaded. -n, --nono No action: print names of files to be upload, but don't upload. --version Show the version and exit. --help Show this message and exit.
Upload and rename
$ gupload --folder 1OQ3lq2O1zqZ01vUgzvg1iyXXtBJRl6pW --file a.out ../a.out --file changelog.txt ../changelog.txt
Uploading file: a.out Uploading file: changelog.txt
Upload all zip files
$ gupload --folder 1OQ3lq2O1zqZ01vUgzvg1iyXXtBJRl6pW *.zip
Uploading file: a.zip Uploading file: b.zip
$ gupload --folder 1OQ3lq2O1zqZ01vUgzvg1iyXXtBJRl6pW --file changelog.txt ../changelog.txt *.zip
Uploading file: changelog.txt Uploading file: a.zip Uploading file: b.zip
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.