{ "info": { "author": "Ben Jeffrey", "author_email": "mail@benjeffrey.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Programming Language :: Python :: 3" ], "description": "django-ipfs-storage\n===================\n\nStore `Django\nfile-uploads `__\non the `Interplanetary File System `__.\n\nUploads are added and pinned to the configured IPFS node, which returns\nthe IPFS Content ID (a hash of the contents). This hash is the name that\nis saved to your database. Duplicate content will also have the same\naddress, saving disk space.\n\nBecause of this only file creation and reading is supported.\n\nOther IPFS users access and reseed a piece of content through its unique\ncontent ID. Differently-distributed (i.e.\u00a0normal HTTP) users can access\nthe uploads through an HTTP\u2192IPFS gateway.\n\nInstallation\n------------\n\n.. code:: bash\n\n pip install django-ipfs-storage\n\nConfiguration\n-------------\n\nBy default ``ipfs_storage`` adds and pins content to an IPFS daemon\nrunning on localhost and returns URLs pointing to the public\nhttps://ipfs.io/ipfs/ HTTP Gateway\n\nTo customise this, set the following variables in your ``settings.py``:\n\n- ``IPFS_STORAGE_API_URL``: defaults to\n ``'http://localhost:5001/api/v0/'``.\n- ``IPFS_GATEWAY_API_URL``: defaults to ``'https://ipfs.io/ipfs/'``.\n\nSet ``IPFS_GATEWAY_API_URL`` to ``'http://localhost:8080/ipfs/'`` to\nserve content through your local daemon\u2019s HTTP gateway.\n\nUsage\n-----\n\nThere are two ways to use a Django storage backend.\n\nAs default backend\n~~~~~~~~~~~~~~~~~~\n\nUse IPFS as `Django\u2019s default file storage\nbackend `__:\n\n.. code:: python\n\n # settings.py\n\n DEFAULT_FILE_STORAGE = 'ipfs_storage.InterPlanetaryFileSystemStorage'\n\n IPFS_STORAGE_API_URL = 'http://localhost:5001/api/v0/'\n IPFS_STORAGE_GATEWAY_URL = 'http://localhost:8080/ipfs/'\n\nFor a specific FileField\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nAlternatively, you may only want to use the IPFS storage backend for a\nsingle field:\n\n.. code:: python\n\n from django.db import models\n\n from ipfs_storage import InterPlanetaryFileSystemStorage \n\n\n class MyModel(models.Model):\n # \u2026\n file_stored_on_ipfs = models.FileField(storage=InterPlanetaryFileSystemStorage()) \n other_file = models.FileField() # will still use DEFAULT_FILE_STORAGE\n\nDon\u2019t forget the brackets to instantiate\n``InterPlanetaryFileSystemStorage()`` with the default arguments!\n\nFAQ\n---\n\nWhy IPFS?\n~~~~~~~~~\n\nNot my department. See https://ipfs.io/#why.\n\nHow do I ensure my uploads are always available?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nI don\u2019t know. Maybe look into using\n`ipfs-cluster `__ to spread it\nacross a few nodes? Or perhaps you could integrate\n`Eternum `__\\ \u2019s hosted pinning service.\n\nHow do I backup my uploads?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSee above.\n\nHow do I delete an upload?\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBecause of the distributed nature of IPFS, anyone who accesses a piece\nof content keeps a copy, and reseeds it for you automatically until it\u2019s\nevicted from their node\u2019s local cache. Yay bandwidth costs! Boo\ncensorship!\n\nUnfortunately, if you\u2019re trying to censor yourself (often quite\nnecessary), this means the best we can do is unpin the piece of content\nfrom your own IPFS node(s) and hope nobody else has pinned it.\n\nHow do I securely expose my IPFS daemon\u2019s API to connect remotely?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSomeone please tell me.\n\nHow do I securely expose my own IPFS\u2190HTTP Gateway?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAgain, see above.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jeffbr13/django-ipfs-storage", "keywords": "django ipfs storage", "license": "MPL 2.0", "maintainer": "", "maintainer_email": "", "name": "django-ipfs-storage", "package_url": "https://pypi.org/project/django-ipfs-storage/", "platform": "", "project_url": "https://pypi.org/project/django-ipfs-storage/", "project_urls": { "Homepage": "https://github.com/jeffbr13/django-ipfs-storage" }, "release_url": "https://pypi.org/project/django-ipfs-storage/0.0.4/", "requires_dist": [ "django", "ipfsapi" ], "requires_python": "", "summary": "IPFS storage backend for Django.", "version": "0.0.4" }, "last_serial": 3325375, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "05492c8ec1e25189c0def311d3f7a9d7", "sha256": "fda8d5d0a562f661644379a0ca164c9c40014f53eaf4adce5716800ff65cd832" }, "downloads": -1, "filename": "django_ipfs_storage-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "05492c8ec1e25189c0def311d3f7a9d7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6517, "upload_time": "2017-11-12T02:43:47", "url": "https://files.pythonhosted.org/packages/72/82/dac0bf28430ff6d25c3ac6b62b235d783080c8d3c7c19abc54b672c32333/django_ipfs_storage-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a53b623e7e3f036297f85d0b0dc8e0f5", "sha256": "db1fbc244a597889948635d084226b21d8640ab564fb147eeedcaea465a6e184" }, "downloads": -1, "filename": "django-ipfs-storage-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a53b623e7e3f036297f85d0b0dc8e0f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4126, "upload_time": "2017-11-12T02:43:48", "url": "https://files.pythonhosted.org/packages/8b/ce/42730847453d2429391d41f983272dc1f9ce1e847cceea1b2a1b344a05af/django-ipfs-storage-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "60b73762664e44ec9397b1641ffd5e95", "sha256": "035f5d0bc10245119aff61a2f69dde3f8331f6aa3086d04b007cc1a20821baa7" }, "downloads": -1, "filename": "django_ipfs_storage-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "60b73762664e44ec9397b1641ffd5e95", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6541, "upload_time": "2017-11-12T02:55:29", "url": "https://files.pythonhosted.org/packages/35/65/a3e426294caaab8718bbe1e86ef15042ad7d728271ea2ec1b91a89227f49/django_ipfs_storage-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0fc27fdd45901089ec9b4b11e7114cfd", "sha256": "59fe033383f2805bf4650ea70cc7c14d498d60ec8b4983147087d6ba0bdb5023" }, "downloads": -1, "filename": "django-ipfs-storage-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0fc27fdd45901089ec9b4b11e7114cfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4152, "upload_time": "2017-11-12T02:55:30", "url": "https://files.pythonhosted.org/packages/d2/02/9ec1516cee7fd9e28e78f0f8e960af8644fdea903d7d1f18c93cef139f1c/django-ipfs-storage-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "008a189701effb3ea275a832ff63d5c0", "sha256": "8e990047e9164af5b1ac740eb40c2fade8b30ad7f672c6dc139f78f7fea49da5" }, "downloads": -1, "filename": "django_ipfs_storage-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "008a189701effb3ea275a832ff63d5c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6673, "upload_time": "2017-11-12T03:08:21", "url": "https://files.pythonhosted.org/packages/ea/c4/d957dcbeb4d1434ea66298f900fb65420ac2c03119a35d1b3575e682c8c1/django_ipfs_storage-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a92e970395677ce12e7307df78aa637d", "sha256": "93432136eb2dc49ccc8c98691958187692db8874e201a812613baa4bd763c62b" }, "downloads": -1, "filename": "django-ipfs-storage-0.0.3.tar.gz", "has_sig": false, "md5_digest": "a92e970395677ce12e7307df78aa637d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4275, "upload_time": "2017-11-12T03:08:22", "url": "https://files.pythonhosted.org/packages/ba/91/481da4559bee222bea360a46ff6dbebef23a8a082629bc1c4738f0c1938a/django-ipfs-storage-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "213ecfd7d656c7d7c3ae992f82150827", "sha256": "20783f09ccde8f7c944a3e5bab39ad19397fb6fda59c9095d2c7d4635336675f" }, "downloads": -1, "filename": "django_ipfs_storage-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "213ecfd7d656c7d7c3ae992f82150827", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6674, "upload_time": "2017-11-12T03:18:46", "url": "https://files.pythonhosted.org/packages/12/ec/0cb14649bf8f196bbd2299d2076a051fe09cb73704f9e15f356d31f4c884/django_ipfs_storage-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79e3250cf14724e81fcc0cec602ab24b", "sha256": "dc978f0416cb7a9fb18d09021d2064bac1e418da55db5285733931a1bce75bfa" }, "downloads": -1, "filename": "django-ipfs-storage-0.0.4.tar.gz", "has_sig": false, "md5_digest": "79e3250cf14724e81fcc0cec602ab24b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4276, "upload_time": "2017-11-12T03:18:47", "url": "https://files.pythonhosted.org/packages/34/7a/b69d57d382ae31c438b16a65a6e448305372446a4cb025ef565ca4ec1339/django-ipfs-storage-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "213ecfd7d656c7d7c3ae992f82150827", "sha256": "20783f09ccde8f7c944a3e5bab39ad19397fb6fda59c9095d2c7d4635336675f" }, "downloads": -1, "filename": "django_ipfs_storage-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "213ecfd7d656c7d7c3ae992f82150827", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6674, "upload_time": "2017-11-12T03:18:46", "url": "https://files.pythonhosted.org/packages/12/ec/0cb14649bf8f196bbd2299d2076a051fe09cb73704f9e15f356d31f4c884/django_ipfs_storage-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79e3250cf14724e81fcc0cec602ab24b", "sha256": "dc978f0416cb7a9fb18d09021d2064bac1e418da55db5285733931a1bce75bfa" }, "downloads": -1, "filename": "django-ipfs-storage-0.0.4.tar.gz", "has_sig": false, "md5_digest": "79e3250cf14724e81fcc0cec602ab24b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4276, "upload_time": "2017-11-12T03:18:47", "url": "https://files.pythonhosted.org/packages/34/7a/b69d57d382ae31c438b16a65a6e448305372446a4cb025ef565ca4ec1339/django-ipfs-storage-0.0.4.tar.gz" } ] }