Metadata-Version: 2.0
Name: gcs-client
Version: 0.2.0
Summary: Google Cloud Storage Python client
Home-page: https://github.com/Akrog/gcs-client
Author: Gorka Eguileor
Author-email: gorka@eguileor.com
License: Apache License 2.0
Keywords: gcs-client
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Requires-Dist: oauth2client
Requires-Dist: requests[security]

==========
GCS-Client
==========

.. image:: https://img.shields.io/travis/Akrog/gcs-client.svg
        :target: https://travis-ci.org/Akrog/gcs-client

.. image:: https://img.shields.io/pypi/v/gcs-client.svg
        :target: https://pypi.python.org/pypi/gcs-client

.. image:: https://coveralls.io/repos/Akrog/gcs-client/badge.svg
         :target: https://coveralls.io/github/Akrog/gcs-client

.. image:: https://readthedocs.org/projects/gcs-client/badge/?version=latest
         :target: http://gcs-client.readthedocs.org/en/latest/?badge=latest
         :alt: Documentation Status


Google Cloud Storage Python Client

* Apache 2.0 License
* Documentation: https://gcs-client.readthedocs.org.

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:

.. code-block:: bash

    $ 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:

.. code-block:: python

    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 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.


.. _Google's appengine-gcs-client: https://github.com/GoogleCloudPlatform/appengine-gcs-client
.. _Google: https://cloud.google.com/storage/docs/overview
.. _Google Developers Console: https://console.developers.google.com
.. _Credentials section: https://console.developers.google.com/apis/credentials
.. _issue tracker on GitHub: https://github.com/Akrog/gcs-client/issues




=======
History
=======

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.


