{ "info": { "author": "Sven Grunewaldt", "author_email": "strayer@olle-orks.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "=============================\ndjango-gcloud-storage\n=============================\n\n.. image:: https://img.shields.io/pypi/v/django-gcloud-storage.svg\n :target: https://pypi.python.org/pypi/django-gcloud-storage\n.. image:: https://img.shields.io/pypi/l/django-gcloud-storage.svg\n :target: https://pypi.python.org/pypi/django-gcloud-storage\n.. image:: https://img.shields.io/pypi/pyversions/django-gcloud-storage.svg\n :target: https://pypi.python.org/pypi/django-gcloud-storage\n.. image:: https://img.shields.io/pypi/format/django-gcloud-storage.svg\n :target: https://pypi.python.org/pypi/django-gcloud-storage\n\nDjango storage module implementation for Google Cloud Storage using the\ngoogle-cloud-storage_ python module by Google.\n\n.. _google-cloud-storage: https://pypi.org/project/google-cloud-storage/\n\nNotice: alpha release\n---------------------\n\nPlease keep in mind that this version is not yet used in any production application\n(as far as I know of) and thus is an alpha release, even though fully tested!\nAny kind of feedback is greatly appreciated.\n\nInstallation\n------------\n\nInstall django-gcloud-storage::\n\n pip install django-gcloud-storage\n\nCreate a GCS service account JSON keyfile and a bucket for your application.\nCheck the documentation of google-cloud-python and Google Cloud Platform for\nmore details:\n\nhttps://googlecloudplatform.github.io/google-cloud-python/latest/core/auth.html#setting-up-a-service-account\n\nhttps://cloud.google.com/storage/docs/authentication#generating-a-private-key\n\nUpdate your Django settings and use it like any other Django storage module::\n\n DEFAULT_FILE_STORAGE = 'django_gcloud_storage.DjangoGCloudStorage'\n\n GCS_PROJECT = \"django-gcloud-storage\"\n GCS_BUCKET = \"django-gcloud-storage-bucket\"\n GCS_CREDENTIALS_FILE_PATH = \"/path/to/gcs-credentials.json\"\n\nFeatures\n--------\n\n* Fully tested on Python 2.7, 3.4 - 3.7, PyPy 2.7-7.1.1 and PyPy 3.6-7.1.1 with\n Django 1.11 and 2.1 - 2.2\n* Files are locally downloaded as SpooledTemporaryFile objects to avoid memory\n abuse\n* Changed files will automatically be reuploaded to GCS when closed\n\nCaveats\n-------\n\n* Files must be fully downloaded to be accessed and fully uploaded when changed\n* Everytime a file is opened via the storage module, it will be downloaded again\n* (development) Most tests need access to Google Cloud Storage\n\nUnsigned URLS\n-------------\n\nThe module generates signed urls by default. This requires calls to storage API\nwhich might take some time if you need to return several objects at a time. You\ncan generate unsigned urls using the following setting::\n\n GCS_USE_UNSIGNED_URLS = True\n\nKeep in mind you might need to set the default object permission to public for\nthe unsigned urls to work.\n\nContributing\n------------\n\nContributions are welcome, and they are greatly appreciated! Every\nlittle bit helps, and credit will always be given.\n\nReport Bugs\n~~~~~~~~~~~\n\nReport bugs at https://github.com/strayer/django-gcloud-storage/issues.\n\nIf you are reporting a bug, please include:\n\n* Your operating system name and version.\n* Any details about your local setup that might be helpful in troubleshooting.\n* Detailed steps to reproduce the bug.\n\nFix Bugs\n~~~~~~~~\n\nLook through the GitHub issues for bugs. Anything tagged with \"bug\"\nis open to whoever wants to implement it.\n\nImplement Features\n~~~~~~~~~~~~~~~~~~\n\nLook through the GitHub issues for features. Anything tagged with \"feature\"\nis open to whoever wants to implement it.\n\nWrite Documentation\n~~~~~~~~~~~~~~~~~~~\n\ndjango-gcloud-storage could always use more documentation, whether as part of the\nofficial django-gcloud-storage docs, in docstrings, or even on the web in blog posts,\narticles, and such.\n\nPull Request Guidelines\n~~~~~~~~~~~~~~~~~~~~~~~\n\nBefore you submit a pull request, check that it meets these guidelines:\n\n1. The pull request should include tests.\n2. The pull request should work for all supported Python and Django versions\n (see above). Make sure that the tests pass.\n\nRunning Tests\n-------------\n\nWarning: Most of the tests require a GCS project and will do API requests that\nmay end up costing you money!\n\nYou can run the test suite either in a virtualenv with py.test or with tox - both\nrequire a valid service account JSON keyfile called `test-credentials.json` in\nthe project root. The GCS project name will be provided via a command argument.\n\nThe tests will create and (hopefully) remove buckets on their own. To be safe,\ncheck if there are any leftover buckets in your GCS project after running the\ntests!\n\n::\n\n source /bin/activate\n (myenv) $ pip install -r requirements-test.txt\n (myenv) $ pip install -e .\n (myenv) $ py.test --gcs-project-name=\"project-name\"\n\n or\n\n $ tox -- --gcs-project-name=\"project-name\"\n\nCredits\n-------\n\nInspired by:\n\n* `django-storages`_\n\n.. _`django-storages`: https://pypi.python.org/pypi/django-storages\n\nTools (partly) used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-djangopackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\n\n\n\n\nHistory\n-------\n\n0.4.0 (2019-06-27)\n~~~~~~~~~~~~~~~~~~\n\n* Autodetect and set object Content-Type on upload\n* Added test support for Django 2.2\n* Dropped test support for Django 2.0\n\n0.3.1 (2018-08-08)\n~~~~~~~~~~~~~~~~~~\n\n* Updated test support versions for Django 1.11 - 2.1\n* Added test support for Python 3.7\n* Added test support for Pypy 3\n* Dropped support for Python 3.3\n* Dropped support for Django 1.11 or older\n* Tests are much quicker and do less API requests\n* Switched to google-cloud-storage library\n\n0.2.1 (2017-06-23)\n~~~~~~~~~~~~~~~~~~\n\n* Use google-cloud package instead of gcloud (package was renamed by Google)\n* Added test support for Django 1.10 and 1.11\n* Deprecated Django 1.7 (should still work, no support guaranteed)\n* Added test support for Python 3.6\n* Added setting for unsigned URLs support\n* Added get_modified_time() for Django 1.11+ support\n* storage.open() will now create new blobs if no existing blob has been found\n\n0.1.0 (2016-02-01)\n~~~~~~~~~~~~~~~~~~\n\n* First release on PyPI.\n* Development of this release was kindly sponsored by `Craft AG `_.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/strayer/django-gcloud-storage", "keywords": "django-gcloud-storage gcloud google-cloud gcs", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-gcloud-storage", "package_url": "https://pypi.org/project/django-gcloud-storage/", "platform": "", "project_url": "https://pypi.org/project/django-gcloud-storage/", "project_urls": { "Homepage": "https://github.com/strayer/django-gcloud-storage" }, "release_url": "https://pypi.org/project/django-gcloud-storage/0.4.0/", "requires_dist": [ "google-cloud-storage (>=1.10.0)", "django (>=1.11)" ], "requires_python": "", "summary": "Django storage module implementation for Google Cloud Storage", "version": "0.4.0" }, "last_serial": 5457048, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "3c17a83cc45610fe24fb464e07cbe3c3", "sha256": "5d55bbc23342308c22f576016a55eea9b29da5cea55c4bfc8b69777b7723cacb" }, "downloads": -1, "filename": "django_gcloud_storage-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3c17a83cc45610fe24fb464e07cbe3c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8577, "upload_time": "2016-04-21T16:49:10", "url": "https://files.pythonhosted.org/packages/11/b8/2a994813136bad11c2ca8935108359dd8f8b170f3457afb260568bd76ba6/django_gcloud_storage-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8ac96dad8cd8fb7068cbac9cae44918", "sha256": "5ad66d33dd0431c8a9fe9e4b93e55ab5066dd5418945bcde58ddbab27d37bfd3" }, "downloads": -1, "filename": "django-gcloud-storage-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b8ac96dad8cd8fb7068cbac9cae44918", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12850, "upload_time": "2016-04-21T16:54:15", "url": "https://files.pythonhosted.org/packages/4a/26/e0505b83abf22b63467058f15e4b454f2581f91f2b81cdb1f0e8e052c48d/django-gcloud-storage-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2806ab9f4db1cefd23751fd5e05002a4", "sha256": "c8f90c4c9420ac9a399b6a7ca9a8a2880cf1ba4014be488c54cde3d6e0976bb4" }, "downloads": -1, "filename": "django-gcloud-storage-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2806ab9f4db1cefd23751fd5e05002a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13660, "upload_time": "2017-06-23T15:26:29", "url": "https://files.pythonhosted.org/packages/cc/01/582b8d8bf77e88bf6b2b9c8a74d90c93937dbd8ad699420ab4f11159e74d/django-gcloud-storage-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "8982571093b0db8b9952ca0b876206cc", "sha256": "232c2e128477a8dfaaff3123205274dc2786035ecb1da5aeb2a27ed2b511f78c" }, "downloads": -1, "filename": "django_gcloud_storage-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8982571093b0db8b9952ca0b876206cc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9504, "upload_time": "2017-06-23T15:36:52", "url": "https://files.pythonhosted.org/packages/df/09/6df283de788d5ffd0c488616df9af8698ddef7196ec9c69b2fe084e2da94/django_gcloud_storage-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b26b7d3f3b11dcd3e7ebd11c4e3a4fb7", "sha256": "e041bd1d3b68c27a775a169d2974c940879bd9cca51a7b8664ca1811e8d0500f" }, "downloads": -1, "filename": "django-gcloud-storage-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b26b7d3f3b11dcd3e7ebd11c4e3a4fb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13683, "upload_time": "2017-06-23T15:36:55", "url": "https://files.pythonhosted.org/packages/24/49/9a4fc2cc4486e60177086417b7c12549b6f919608b932b13945bd6dd672a/django-gcloud-storage-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "094b95de6487e3f06071191aff29f584", "sha256": "9b8fb42f4c3fb359275e0c028bad33cbf573d7f171586bf2d0a035f6ce51c81c" }, "downloads": -1, "filename": "django_gcloud_storage-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "094b95de6487e3f06071191aff29f584", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6329, "upload_time": "2018-08-08T19:18:21", "url": "https://files.pythonhosted.org/packages/0b/f2/5b8b8f9303a430e04ef4959840c7abf06e33eefa9a49309f88449f3f1413/django_gcloud_storage-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af7067c8a41912b7523ac8c6b9eb0d47", "sha256": "c5e82eafc3cb46a47c31c24e092e3dc04d32ac4344ef69fcad8080aaa816a4f2" }, "downloads": -1, "filename": "django-gcloud-storage-0.3.0.tar.gz", "has_sig": false, "md5_digest": "af7067c8a41912b7523ac8c6b9eb0d47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16182, "upload_time": "2018-08-08T19:18:22", "url": "https://files.pythonhosted.org/packages/15/f0/74cb6fda4ca56fabe6d55491ebcc3a6c3933d079ccbd62259dd00d1fa2c2/django-gcloud-storage-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "db8bd0019f3f78b0af9351829082ab43", "sha256": "600ddff0584db811857043caf676317bb41c57a85f3b8ce36bc4c6d9a22f1ee3" }, "downloads": -1, "filename": "django_gcloud_storage-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db8bd0019f3f78b0af9351829082ab43", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6326, "upload_time": "2018-08-08T19:24:15", "url": "https://files.pythonhosted.org/packages/98/0e/f4eaf47e376d290ac60a7ea8bef18b2fb8f1052b001a617aa6319292483b/django_gcloud_storage-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb14581f6912edfe8519df19c9ce702b", "sha256": "01897c10cf0152a0ffc8fc0a01ceeca32af21eaebc8c5a9e63e26c296f520607" }, "downloads": -1, "filename": "django-gcloud-storage-0.3.1.tar.gz", "has_sig": false, "md5_digest": "cb14581f6912edfe8519df19c9ce702b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16175, "upload_time": "2018-08-08T19:25:43", "url": "https://files.pythonhosted.org/packages/55/85/8c7fc4ac3244afd93e4e854f6ed2c09ecbc8cc45aa6cc0f4b0cd3d5c8b5d/django-gcloud-storage-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "17a577f49788a1b12b181820e6ce82c0", "sha256": "4b9c54401e6ca80e4659cd62341d380da6ba0e2c5b1882c90f91a28ae28b065f" }, "downloads": -1, "filename": "django_gcloud_storage-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "17a577f49788a1b12b181820e6ce82c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7900, "upload_time": "2019-06-27T13:58:32", "url": "https://files.pythonhosted.org/packages/57/41/79a030b9a279efe6926ffd4d099a75cea254f7287680f6e2ae08d8c2112c/django_gcloud_storage-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ea801e1c752fe627279461ef126d8eb", "sha256": "be748d0c5d8a36e440046762c04a3811d81fe7cee5d47c75a2a72446d07ede69" }, "downloads": -1, "filename": "django-gcloud-storage-0.4.0.tar.gz", "has_sig": false, "md5_digest": "5ea801e1c752fe627279461ef126d8eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14149, "upload_time": "2019-06-27T13:58:34", "url": "https://files.pythonhosted.org/packages/54/8a/56447e34715027c141525b7ee3fae70da5fa46e7b86b7037dac988df755f/django-gcloud-storage-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "17a577f49788a1b12b181820e6ce82c0", "sha256": "4b9c54401e6ca80e4659cd62341d380da6ba0e2c5b1882c90f91a28ae28b065f" }, "downloads": -1, "filename": "django_gcloud_storage-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "17a577f49788a1b12b181820e6ce82c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7900, "upload_time": "2019-06-27T13:58:32", "url": "https://files.pythonhosted.org/packages/57/41/79a030b9a279efe6926ffd4d099a75cea254f7287680f6e2ae08d8c2112c/django_gcloud_storage-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ea801e1c752fe627279461ef126d8eb", "sha256": "be748d0c5d8a36e440046762c04a3811d81fe7cee5d47c75a2a72446d07ede69" }, "downloads": -1, "filename": "django-gcloud-storage-0.4.0.tar.gz", "has_sig": false, "md5_digest": "5ea801e1c752fe627279461ef126d8eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14149, "upload_time": "2019-06-27T13:58:34", "url": "https://files.pythonhosted.org/packages/54/8a/56447e34715027c141525b7ee3fae70da5fa46e7b86b7037dac988df755f/django-gcloud-storage-0.4.0.tar.gz" } ] }