Skip to main content

Minimalistic Google Drive Library for Python

Project description

Drive-in

Minimalistic Google Drive Library for Python.

PyPI - Version PyPI - Python Version
Code style: black License: MIT
su6 checks

Table of Contents

Features

  • Authentication: Easily authenticate with Google Drive using OAuth 2.0, and store the access token for future use. Drive-In provides a CLI authentication process, guiding you through token creation.

  • File Upload: Seamlessly upload files to your Google Drive, with support for multi-part uploads. You can specify the file's name and the destination folder.

  • File Download: Download files from Google Drive, also with multipart support. *

  • API Interaction: Interact with the Google Drive API through a simplified interface, making it effortless to perform operations like creating, updating, and deleting files or folders. *

  • Error Handling: Drive-In includes error handling to help you handle unexpected situations, such as failed API requests.

* Due to Authentication Limitations, you can only view and edit files that were created using this tool.

Installation

pip install drive-in

Usage

First, import the library and create an instance of the Drive class:

from drive_in import Drive

drive = Drive()

This will prompt the user for authentication.

Checking Authentication Status

# Check if the authentication token is valid
if drive.ping():
    print("Authentication is successful and server responds well.")
else:
    print("Authentication failed.")

Uploading a File

# Upload a file to Google Drive
file_path = "example.txt"
drive.upload(file_path)

Downloading a File

# Download a file from Google Drive 
file_id = "your_file_id_here"
downloaded_file = drive.download(file_id)
# if no output target is passed, it is saved to the same name as it has on drive. 
# A reference to the file handle is returned.

Accessing other Drive API Endpoints

Other than upload and download, you can access REST resources with the HTTP verbs (GET, POST, PATCH, DELETE):

drive.get("files")  # perform GET /drive/v3/files
# returns a Result object which has .success (bool) and .data (dict) properties.
# _response and _url internal properties are available if you need access to this raw info.

drive.post("files/123/comments", data=dict(content="...")) # perform POST to create a new comment.

drive.delete("files/123")  # perform DELETE /drive/v3/files/123

resource = drive.resource("files") / 123  # dynamically build up the resource string
drive.delete(resource)  # also performs DELETE /drive/v3/files/123

See the Google Drive API page for information about available resources.

Authentication

This library works only a public OAuth Client ID. Since it is open source, a secret config or key can not be shared. This leads to some limitations with how much the app can access. Unfortunately, you can only access files created by this app (i.e. uploaded by it).

OAuth Callback

Since oauth requires a callback URL, you're redirected to "https://oauth.trialandsuccess.nl/callback" after logging in. This page simply echoes the access token from the request parameters using oauth-echoer.

You can also provide you own Client ID and callback URL when initializing a Drive instance:

custom_clientid = "123-abc.apps.googleusercontent.com"
custom_url = "https://yoursite.com/callback"

drive = Drive(
    client_id=custom_clientid,
    redirect_uri=custom_url,
  )

License

drive-in is distributed under the terms of the MIT license.

Disclaimer: This library is not officially affiliated with Google Drive or Google LLC. It is an open-source project created to simplify interactions with Google Drive's API.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drive_in-0.1.4.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

drive_in-0.1.4-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file drive_in-0.1.4.tar.gz.

File metadata

  • Download URL: drive_in-0.1.4.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.25.0

File hashes

Hashes for drive_in-0.1.4.tar.gz
Algorithm Hash digest
SHA256 e3edcbeee0c4445cc12523bfb253b8ca5c38fe4c1b4d4b5ee48f20dda980622a
MD5 51626bf08a77ceeb4816a6032bde060d
BLAKE2b-256 a8b8fa91919fe4f3c71b86289cd7df453197a07c8b01a424bc8f231daf95166f

See more details on using hashes here.

File details

Details for the file drive_in-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: drive_in-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.25.0

File hashes

Hashes for drive_in-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5339e83f7d91f6b4ecf86683c51f3cceecc65d95e85c38c736938a3be06ff948
MD5 1630f7de9c31a4bfe97d77d31963e6fd
BLAKE2b-256 2126d11021930fd72e021aaa6ac01f426e836ddb1dcdb2d5e5bf10de30d8046d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page