Skip to main content

Utility functions for Google Cloud Storage

Project description

Google Cloud Storage (GCS) Utilities

This project provides a few simple utility functions for interacting with GCS.

Authentication

To function properly, this code needs credentials that it can use to authenticate against the Google Cloud Storage API. Credentials can be provided in one of two ways, and the code will look for them in this order:

  1. Service Account Key.

Before running this code, create an environment variable named SERVICE_ACCOUNT_KEY containing the JSON key for a Google Cloud service account with the necessary permissions to perform the actions you're trying to perform in GCS.

  1. Personal Credentials.

Before running this code, authenticate with the Google Cloud Storage API using the gcloud command line tool:

$ gcloud auth application-default login --project GCP_PROJECT_NAME

Development

This project uses Pipenv to manage virtual environments and dependencies. Development-time dependencies are documented in the Pipfile. Follow the Pipenv documentation to create a virtual environment and install the dependencies.

Makefile

The included Makefile prescribes actions to test, build, and publish this code to a Python Package Index (PyPI) repository as described in the following sections.

$ make [test | build | publish]

Testing

With the virtual environment active and the dependencies installed, use pytest to run the test suite.

The integration tests interact with the actual GCS API to manipulate blobs in an actual GCS bucket. If needed, change the GCS project and bucket used for these tests by changing the variables in the test_gcs.py module.

The integration tests require credentials for the GCS bucket that is used for testing. When running the tests, you must provide credentials as described in the Authentication section above.

To run only the unit tests, and skip the integration tests, run:

$ pipenv run pytest -m "not integration"

Building

This project uses the setuptools Python package for packaging as described here.

When building via the make build command, you may optionally append to the package name using the prerelease argument. For example, if the current version of gcsutils specified in the setup.py module is 1.2.3, then

$ make build prerelease=rc1

will produce a package named gcsutils-1.2.3rc1. The default is a beta prerelease name incremented by each git commit (eg/ 1.2.3b7 for the seventh commit on this branch). Specify a final release with

$ make build prerelease=""

Note that prerelease names must comply with PEP 440.

Publishing

This project uses the twine Python package for distribution as described here.

When publishing via the make publish command, the default PyPI repository is testpypi. To publish to pypi.org, specify that repository:

$ make publish pypi_repository=pypi

The credentials necessary to publish to the target PyPI repository can be provided in one of two ways.

  1. As these environment variables:
Env Var Notes
PYPI_REPOSITORY_USERNAME PyPI account username. If authenticating using a token, use the literal string __token__.
PYPI_REPOSITORY_PASSWORD PyPI account password. If authenticating using a token, use the token contents.
  1. At the make publish command:
$ make publish pypi_repository_password="foo" pypi_repository_password="bar"

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

gcsutils-1.1.5.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

gcsutils-1.1.5-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file gcsutils-1.1.5.tar.gz.

File metadata

  • Download URL: gcsutils-1.1.5.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.12

File hashes

Hashes for gcsutils-1.1.5.tar.gz
Algorithm Hash digest
SHA256 2d78ed8f0ac710d2014dd1a512dce6569832d6fc2d9ff6f80ab7617383f7e83b
MD5 e3f10b54fe3810f0f05d2d137f05aa57
BLAKE2b-256 3beac6c7495a6f7e0685f09a5bfd09e77ceff1a83e51364e25859cc6d13b26e9

See more details on using hashes here.

File details

Details for the file gcsutils-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: gcsutils-1.1.5-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.12

File hashes

Hashes for gcsutils-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cbebb91512b0f09cc87136496996077eb6fd543ea124b130b4d6d429a5bea515
MD5 f53a35cc2e47c9b35ca0d90e8f5ae266
BLAKE2b-256 e1233c6622f65f906ab5a6163e2acb98ecddcda4b0528dfe2e4d29bc943928f1

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