Skip to main content

GCS-Client

https://img.shields.io/travis/Akrog/gcs-client.svg https://img.shields.io/pypi/v/gcs-client.svg https://img.shields.io/coveralls/Akrog/gcs-client/master.svg Documentation Status https://img.shields.io/pypi/pyversions/gcs-client.svg https://img.shields.io/:license-apache-blue.svg

Google Cloud Storage Python Client

The idea is to create a client with similar functionality to Google’s appengine-gcs-client but intended for applications running from outside Google’s AppEngine.

Cloud Storage documentation can be found at Google

Features

For now only basic functionality is available:

  • Creating buckets

  • Deleting buckets

  • Listing buckets in a project

  • Getting default bucket for a project

  • Getting bucket attributes

  • Listing objects in a bucket

  • Getting objects attributes

  • Deleting objects

  • Reading object contents

  • Writing an object

  • Configurable retries with Truncated Exponential Backoff

Installation

To install all you need to do is run:

$ pip install --upgrade gcs-client

Usage Example

To use gcs-client in a project you will need to have Credentials to access intended Google Cloud Storage.

Credentials are generated in Google Developers Console in the Credentials section of the API Manager of the project. Recommended credentials file is JSON.

Once you have the credentials you can start using gcs_client to access your project:

import gcs_client

credentials = gcs_client.Credentials('private_key.json')
project = gcs_client.Project('project_name', credentials)

# Print buckets in the project
buckets = project.list()
print 'Buckets:\n\t-', '\n\t- '.join(map(str, buckets))

# Print some information from first bucket
bucket = buckets[0]
print 'Bucket %s is located in %s with storage class %s' % (bucket, bucket.location,
                                                            bucket.storageClass)

# List the objects in the bucket
objects = bucket.list()
if not objects:
    print 'There are no objects, creating one'
    filename = '/tmp/my_file.txt'
    with bucket.open(filename, 'w') as f:
        f.write('this is a test file\n' * 100)
    objects = [gcs_client.Object(bucket.name, filename, credentials=credentials)]

if objects:
    print '\t', '\n\t'.join(map(lambda o: o.name + ' has %s bytes' % o.size, objects))
    # Read the contents from the first file
    with objects[0].open() as obj:
        print 'Contents of file %s are:\n' % obj.name, obj.read()
else:
    print 'There are no objects, nothing to do'

More examples can be found in the documentation, in the Usage section.

Reporting an issue

If you’ve found an issue with gcs-client here’s how you can report the problem:

  • Preferred method is filing a bug on GitHub:

    1. Go to project’s issue tracker on GitHub

    2. Search for existing issues using the search field at the top of the page

    3. File a new issue with information on the problem

    4. Thanks for helping make gcs-client better

  • If you don’t have a GitHub account and don’t wish to create one you can just drop me an email.

History

0.2.2 (2016-11-26)

  • Fix #1 - Media upload not working

0.2.1 (2016-03-26)

  • Fix requirements issue

0.2.0 (2015-11-25)

  • Add support for delimiter in listings using Prefix object

  • Remove dependency from google-api-python-client

  • Return descriptive error message on AttributeError

0.1.4 (2015-11-16)

  • No changes, version bump to reload in pypi

0.1.3 (2015-11-16)

  • Reading an object will return data as bytes, not a bytearray.

  • Read specific versions of an object.

  • Can specify chunksize on Bucket’s open and Object init.

  • Add exists to buckets and project.

  • Fix opening files with names that needed encoding.

0.1.2 (2015-11-10)

  • Fix seek method.

0.1.1 (2015-11-09)

  • Fix Pypi package.

0.1.0 (2015-11-09)

  • First release on PyPI.

Metadata

Release files for gcs-client 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gcs-client 0.2.2
File Size Uploaded
gcs-client-0.2.2.tar.gz 40.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gcs-client 0.2.2
File Interpreter ABI Platform
gcs_client-0.2.2-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 77.7 kB

Release files / gcs-client-0.2.2.tar.gz

Download URL gcs-client-0.2.2.tar.gz
Size 40.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a8657176ce92b0e0cf6fde738e94b6bc71eafc99f7711723c306eeb952d6bd55
BLAKE2b-256 checksum
How to use checksums
789a226e8345dfbedc08fecab23a9132e71deb33a38eae2f2f39f5584c28c945
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / gcs_client-0.2.2-py2.py3-none-any.whl

Download URL gcs_client-0.2.2-py2.py3-none-any.whl
Size 37.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
56067991305ff61d6aff2e1d663da361d334670d8c2255b715507fbeb902ce11
BLAKE2b-256 checksum
How to use checksums
f1a9c5ad5745b0146aada03f13313bbf34735f26df8308973a2348b7772f31ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page