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 ensure end-to-end data integrity in uploads and downloads
Progress bars for long-running upload and download operations
Resumable uploads and 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 ls
List buckets or objects in a bucket/prefix.
gs cp
Copy files to, from, or between buckets.
gs mv
Move files to, from, or between buckets.
gs mb
Create a new Google Storage bucket.
gs rb
Permanently delete an empty bucket.
gs rm
Delete objects (files) from buckets.
gs sync
Sync a directory of files with bucket/prefix.
gs api
Use httpie to perform a raw HTTP API request.
gs presign
Get a pre-signed URL for accessing an object.
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)
Links
Bugs
Please report bugs, issues, feature requests, etc. on GitHub.
License
Licensed under the terms of the MIT 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 gs-0.4.1.tar.gz
.
File metadata
- Download URL: gs-0.4.1.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf40dfe489f2aeb34f10afd3f5195c95063b05bcfb4303bf39b01fa98fd4d747 |
|
MD5 | 65d66cb03cb7f7c928579ebb3cc4bf41 |
|
BLAKE2b-256 | 21bb2746a6761eae46b3ca5ea8351f2257743b6afd3bf07e252dd130ab1bd585 |
File details
Details for the file gs-0.4.1-py2.py3-none-any.whl
.
File metadata
- Download URL: gs-0.4.1-py2.py3-none-any.whl
- Upload date:
- Size: 25.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8fa8f23012767d15fd8b8d6a85f61de2688d7cf4a6e36037b7dd864fd60ad58 |
|
MD5 | c91ab764acc89e18013efdab66695991 |
|
BLAKE2b-256 | f072f3fe00accff683f0e791b7ba55283b3c0c52b68f3231bba289537eccb67b |