Skip to main content

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

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 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)
https://travis-ci.org/kislyuk/gs.png https://img.shields.io/pypi/v/gs.svg https://img.shields.io/pypi/l/gs.svg https://codecov.io/gh/kislyuk/gs/branch/master/graph/badge.svg

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

gs-0.1.4.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

gs-0.1.4-py2.py3-none-any.whl (20.3 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: gs-0.1.4.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for gs-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1f4404b7d1bdca757c22770fcf2f67a072a2496f03a0415c6366cb67d6bde105
MD5 81a47d3341ec8264a6fb0096a01de9a6
BLAKE2b-256 0a4d3e019c954f5ab2e819382bd4524dd84ba3c9bd8260b37a9be679cbe37a3f

See more details on using hashes here.

File details

Details for the file gs-0.1.4-py2.py3-none-any.whl.

File metadata

  • Download URL: gs-0.1.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 20.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for gs-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d8b80ba6f8794ea0d0d01014a42112a556b548ca74b38fa2aa05428776c0ac8e
MD5 8b34e62c21bd8bbc85fcd587e90e2da2
BLAKE2b-256 3a20e4e0e06c19865be81344e35547b4e4e52d2115337eac188fa97f36500c41

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