A minimalistic Google Storage client
Project description
gs is a command line interface (CLI) and Python library that provides a set of essential commands for Google Cloud Storage. It is modeled after the AWS CLI’s aws s3 command. Its features are:
- Python 3 compatibility
- A minimalistic set of dependencies
- A tiny footprint
- Intuitive convention-driven configuration of API credentials without browser login prompts
- Checksum validation to detect end-to-end data corruption in uploads and downloads
- Resumable downloads
- An attractive paging and table layout interface
- A JSON object metadata output mode for feeding data to other utilities
Installation
pip install gs
Synopsis
- Usage:
- gs [OPTIONS] COMMAND [ARGS]...
- Options:
--version Show the version and exit. --help Show this message and exit. - Commands:
gs configure Set gs config options, including the API key. gs cp Copy files to, from, or between buckets. gs ls List buckets or objects in a bucket/prefix. gs mb Create a new Google Storage bucket. gs mv Move files to, from, or between buckets. gs presign Get a pre-signed URL for accessing an object. gs rb Permanently delete an empty bucket. gs rm Delete objects (files) from buckets. gs sync Sync a directory of files with bucket/prefix.
Run gs configure to configure Google service account access credentials that will be used by the gs command. You can create a new service account key at https://console.cloud.google.com/iam-admin/serviceaccounts.
Credentials
Before making API calls, gs ingests API credentials in the following order of priority:
- First, gs checks if a GOOGLE_APPLICATION_CREDENTIALS environment variable is set. If so, it attempts to load and use credentials from the service account credentials filename referenced by the variable.
- If that varible is not set, gs attempts to load service account credentials previously configured with gs configure (stored in ~/.config/gs/config.json).
- If that fails, gs attempts to load a service account API token from Google instance metadata.
- If that fails, gs gives up and prints an error.
Using the Python library interface
from gs import GSClient client = GSClient() object_meta = client.get("b/my-bucket/o/my-object") with client.get("b/my-bucket/o/my-object", params=dict(alt="media"), stream=True) as res: object_bytes = res.raw.read() presigned_url = client.get_presigned_url("my-bucket", "my-object", expires_at=time.time()+3600)
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size & hash SHA256 hash help | File type | Python version | Upload date |
---|---|---|---|
gs-0.1.8-py2.py3-none-any.whl (30.4 kB) Copy SHA256 hash SHA256 | Wheel | 2.7 | |
gs-0.1.8.tar.gz (19.6 kB) Copy SHA256 hash SHA256 | Source | None |