Skip to main content

A simple lightweight python package for curl-based requests to google drive.

Project description

CurlGoogle

PyPI

CurlGoogle is a lightweight, easy-to-use, and extremely simple library that allows you to link devices to Google accounts and transfer files (upload/download) using nothing more than the command line. Built on the principles demonstrated in this article, this library offers a lean alternative to more extensive libraries such as google-drive.

With absolutely no specific dependencies needed apart from curl, you can get up and running with file transfers on Google Drive in no time. The library's minimalistic design makes it not only easy to install but also to understand and use.

Installation

To install the library, open your terminal and type the following command:

pip install curlgoogle

This command installs the library from the source directory (TODO: add to PyPI).

Usage

(Disclaimer: Most of the explanation here is derived from this article.)

Installing curl

You should install curl on the device you are trying to run this package (this is the only dependency).

sudo apt install curl # Linux Debian/Ubuntu
brew install curl # Mac

Creating a Google Cloud Platform Project and Acquiring Credentials

In order to manage access to our Google Drive, we need to establish a level of control. This can be achieved by creating a project that incorporates user-specified permissions. This project will function as an intermediary between our users (or us, when using a different machine) and our Google account. The initial step in this process is to navigate to the specified page and set up a new project.

Now, select the Credentials tab and then create credentials which is OAuth Client ID in particular. For app type, you may select anything!

After setting up, you now have a client ID and a client secret. You will need these to authenticate your requests. To automate the process, we use [Dotenv] to store your secrets. Make sure to add .env in your .gitignore file to avoid sharing your secrets with the world!

Run the following commands to install dotenv and create a .env file with the appropriate variables:

pip install python-dotenv
dotenv set GDRIVE_CLIENT_ID <your_client_id>
dotenv set GDRIVE_CLIENT_SECRET <your_client_secret>

Upload and Download

After the setup phase, you're good to go! You do not need to repeat this phase again for your project as the credentials are safely stored in your .env file and the library automatically loads them when you import it.

You can use either a commandline interface (CLI) to upload/download files, or use the library sdk.

important node: You should extract the file or folder identifiers from their corresponding link.

CLI

Use the following format for download and upload

curlgoogle_upload <file/folder-1> <file/folder-2> ... <file/folder-N> (optional)<folder_id>

This will upload all your files or folders into a folder with the specified identifier.

You can also pick a bunch of folders or files, zip them into a single file with a specific name and then upload them all at once using the following convention:

curlgoogle_upload <file/folder-1> <file/folder-2> ... <file/folder-N> (optional)<folder_id> -m -n <zip_file_name>

For download use the following format:

curlgoogle_download <file_id1> <file_id2> ... <file_idN>

This will automatically download the files and extract them.

SDK

You can also use the following functions for upload and download while development. Note that this will automatically prompt you to authenticate your Google account mid-run; therefore, it might not be the ideal use case for production.

# Uplaoding function
curlgoogle.upload(
    file_name: str, 
    file_list: List[str], 
    folder_id: Optional[str] = None
)
# Downloading function
curlgoogle.download(
    file_id: str
)

License

This project is licensed under MIT License.

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

curlgoogle-0.0.3.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

curlgoogle-0.0.3-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file curlgoogle-0.0.3.tar.gz.

File metadata

  • Download URL: curlgoogle-0.0.3.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.17

File hashes

Hashes for curlgoogle-0.0.3.tar.gz
Algorithm Hash digest
SHA256 de2ec58b8a96bde1bca2a47e14d524b30367f213bc7fd7068b0ed04fffb5c487
MD5 06df5ef0e892dec3ffddb4ee6719a01c
BLAKE2b-256 be725b02e7ec0c6d4561ed81bda4a95a12f0acb21a48d04f9943d1f889570baa

See more details on using hashes here.

File details

Details for the file curlgoogle-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: curlgoogle-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.17

File hashes

Hashes for curlgoogle-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 99147411b50257a272bbc2f0084a0a85c0030712f7f96b54796a7487184c57fe
MD5 1694f5e831bc6add536d4792d1bd0521
BLAKE2b-256 e188f614c598ada48681039f9d83112ccc691d56d16ce475dbcf84c2d9f50c7b

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