Library and cli to manage and interact with your Google Drive
Project description
google drive python
Library and cli to manage and interact with your Google Drive, sheets and docs
Table of Contents
- Introduction
- Obtaining credentials for Google APIs
- Installing google-drive CLI
- CLI Documentation
- Contributing
- License
Introduction
Obtaining credentials for Google APIs
Google API credentials
Create a Google project :zap:
Just access to Google APIs.
- Or click here for a quick project creation.
Create credentials for your project :key:
Once you have created your project, you can create your project's credentials.
To manage project's credentials you have the section api/credentials within Google APIs. But if this is your first credentials creation you better follow these steps:
- First, you have to create the consent for your project
- Once the consent is already created and you have a name for you google app you can create your credentials:
- Go to + Create Credentials and select OAuth ID client
- Or access to api/credentials/oauthclient
- The OAuth client type is other and choose the name you prefer :smiley:
You have already created your credentials! :fireworks:
Just place them in a credentials.json
file in the root of this repository. :heavy_exclamation_mark::heavy_exclamation_mark:
Enable Google APIs :books:
You can see where you have to access for each google api in the doc google apis usage
Generating your token.pickle :unlock:
To authenticate us we have to send a token.pickle to Google APIs, this token.pickle is generated using the file credentials.json.
To generate this we have the make target google-auth, so, you just have to tun
make google-auth
:warning: Credentials files to authenticate yourself are included in our .gitignore
:angel: So, you don't have to worry about that :smiley:
Installing google-drive CLI
Using make
make install
Using pip
pip install google-drive
With specific version
Look for available versions with:
pip install google-drive==
And select one and run:
pip install google-drive==<VERSION>
CLI Documentation
google-drive --help
Shows the help message
Usage
> google-drive --help
Usage: google-drive [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get Get file metadata
get-mimetypes Get Mimetypes availables in this API implementation
login Perform a login with google oauth
ls List directory contents
mkdir Make directory
google-drive get-mimetypes
Get Mimetypes availables in this API implementation
Usage
> google-drive get-mimetypes credentials.json
- application/vnd.google-apps.folder
- application/vnd.google-apps.document
- application/vnd.google-apps.spreadsheet
- application/pdf
google-drive login
Perform a login with google oauth.
Usage
> google-drive login <path-to-credentials-file.json>
google-drive ls
List directory contents
Usage
> google-drive ls <directory>/<maybe-some-subdir> <path-to-credentials-file.json>
- (<GOOGLE_DOC_ID_1>, <FILENAME_1>, <FILE_MIMETYPE_1>)
- (<GOOGLE_DOC_ID_2>, <FILENAME_2>, <FILE_MIMETYPE_2>)
- (<GOOGLE_DOC_ID_3>, <FILENAME_3>, <FILE_MIMETYPE_3>)
...
- (<GOOGLE_DOC_ID_N>, <FILENAME_N>, <FILE_MIMETYPE_N>)
google-drive get
Get file metadata
Usage
> google-drive get <GOOGLE_DOC_ID> <path-to-credentials-file.json>
File Metadata:
==
id: <GOOGLE_DOC_ID>
name: <FILENAME>
parents: ['<GOOGLE_DOC__PARENT_ID>']
mime_type: <FILE_MIMETYPE>
export_links:
- application/rtf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=rtf
- application/vnd.oasis.opendocument.text: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=odt
- text/html: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=html
- application/pdf: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=pdf
- application/epub+zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=epub
- application/zip: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=zip
- application/vnd.openxmlformats-officedocument.wordprocessingml.document: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=docx
- text/plain: https://docs.google.com/feeds/download/documents/export/Export?id=<GOOGLE_DOC_ID>&exportFormat=txt
google-drive mkdir
Make directory
Usage
> google-drive mkdir <DIR_NAME> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <DIR_NAME>, application/vnd.google-apps.folder)
google-drive touch
Create empty file of specified mimetype
Usage
> google-drive touch <EXISTING_DIR>/<FILENAME> <SOME_MYMETYPE> <path-to-credentials-file.json>
(<GOOGLE_DOC_ID>, <FILENAME>, <SOME_MYMETYPE>)
It could raise MissingGoogleDriveFolderException
when parent directories do not exist.
Using googledrive as API SDK
Contributing
Contributions are welcome! Please see our Contributing Guide and Style Guide for more details.
You can visit our TODO list :)
License
This project is licensed under the Apache license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file google-drive-0.5.1.tar.gz
.
File metadata
- Download URL: google-drive-0.5.1.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ccf6a6b1ceb36d0f2719268caa6268ec9d4443495dac4168b632f7177dbb0b1 |
|
MD5 | 79287c08a528e47ed9d287e8a2dd28e7 |
|
BLAKE2b-256 | dedcb184be11ecfbd9884b4a70a1ab675c6c9eff65fcad698175fef258b3da9c |
File details
Details for the file google_drive-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: google_drive-0.5.1-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 479d704b3737b005dba7b8f9c8bd4566b8562e1a88b56b66fe0a0634d99a9900 |
|
MD5 | 10fb48aa226e0de02b958b98c96fb061 |
|
BLAKE2b-256 | fabcff28f6b41cfdac511ddc3086bb47a6045f9ca947fa9b921cdbe278f95cbc |