{ "info": { "author": "Piotr Mitros", "author_email": "pmitros@edx.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "django-pyfs\n===========\n\nA Django module which extends pyfilesystem2 with several methods to\nmake it convenient for web use. Specifically, it extends pyfilesystem2\nwith two methods:\n\n fs.get_url(filename, timeout=0)\n\nThis will return a externally-usable URL to the resource. If\ntimeout>0, the URL may stop working after that period (in\nseconds). Details are implementation-dependent. On Amazon S3, this is\na secure URL, which is only available for that period. For a static\nfilesystem, the URLs are unsecure and permanent. \n\n fs.expire(filename, seconds, days, expires=True)\n\nThis allows us to create temporary objects. Our use-case was that we\nwanted to generate visualizations to users which were .png images. The\nlifetime of those images was a single web request, so we set them to\nexpire after a few minutes. Another use case was memoization.\n\nNote that expired files are not automatically removed. To remove them,\ncall `expire_objects()`. In our system, we had a cron job do\nthis for a while. Celery, manual removals, etc. are all options. \n\nTo configure a django-pyfs to use static files, set a parameter in\nDjango settings: \n\n DJFS = {'type' : 'osfs',\n 'directory_root' : 'djpyfs/static/djpyfs',\n 'url_root' : '/static/djpyfs'}\n\nHere, `directory_root` is where the files go. `url_root` is the URL\nbase of where your web server is configured to serve them from.\n\nTo use files on S3, you need `boto` installed. Then, \n\n DJFS = {'type' : 's3fs',\n 'bucket' : 'my-bucket', \n 'prefix' : '/pyfs/' } \n\n`bucket` is your S3 bucket. `prefix` is optional, and gives a base\nwithin that bucket.\n\nTo get your filesystem, call: \n\n def get_filesystem(namespace)\n\nEach module should pass a unique namespace. These will typically\ncorrespond to subdirectories within the filesystem. \n\nThe django-pyfs interface is designed as a generic (non-Django\nspecific) extension to pyfilesystem2. However, the specific\nimplementation is very Django-specific. \n\nGood next steps would be to:\n\n* Allow Django storages to act as a back-end for pyfilesystem\n* Allow django-pyfs to act as a back-end for Django storages\n* Support more types of pyfilesystems (esp. in-memory would be nice)\n\nState: This code is tested and has worked well in a range of settings,\nand is currently deployed on edx.org.\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/edx/django-pyfs", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "django-pyfs", "package_url": "https://pypi.org/project/django-pyfs/", "platform": "", "project_url": "https://pypi.org/project/django-pyfs/", "project_urls": { "Homepage": "https://github.com/edx/django-pyfs" }, "release_url": "https://pypi.org/project/django-pyfs/2.0/", "requires_dist": [ "fs", "fs-s3fs", "six", "django" ], "requires_python": "", "summary": "Django pyfilesystem integration", "version": "2.0" }, "last_serial": 3432739, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "e4a22f9960b04de1fc1d04064de2ec4a", "sha256": "5e71a558a63a090809a13560576721416f8d92ab8d2cce96a70f44fb6c9da355" }, "downloads": -1, "filename": "django-pyfs-1.0.3.tar.gz", "has_sig": false, "md5_digest": "e4a22f9960b04de1fc1d04064de2ec4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4841, "upload_time": "2015-11-24T21:14:47", "url": "https://files.pythonhosted.org/packages/01/3f/331f3be3131564d74d77f39d39778c69d49fc2f78e1985b4383673e80539/django-pyfs-1.0.3.tar.gz" } ], "1.0.3a": [ { "comment_text": "", "digests": { "md5": "88db96e3253878548b9aa644fcdc3c64", "sha256": "defe16d9bfa538e42e2ed3af30d64975e76c6334821e057e02460a895c2a7806" }, "downloads": -1, "filename": "django-pyfs-1.0.3a.tar.gz", "has_sig": false, "md5_digest": "88db96e3253878548b9aa644fcdc3c64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4827, "upload_time": "2015-11-24T21:20:49", "url": "https://files.pythonhosted.org/packages/8b/dc/d927eb5096d966af9e17a45aec5c2e8ca1783df49e93c9a7952d4fde855d/django-pyfs-1.0.3a.tar.gz" } ], "1.0.3b": [ { "comment_text": "", "digests": { "md5": "734a45fca122bc0907be889a65150dbb", "sha256": "46006c128bd59cf9923b8b95f6357dbe98b312bfb5e37fad0fe3a85cef0749ac" }, "downloads": -1, "filename": "django-pyfs-1.0.3b.tar.gz", "has_sig": false, "md5_digest": "734a45fca122bc0907be889a65150dbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8616, "upload_time": "2015-11-24T21:26:58", "url": "https://files.pythonhosted.org/packages/53/2d/ebbfdb1035e02c2e3e4aed379f284f5095a130402fbc3cd45093c2360247/django-pyfs-1.0.3b.tar.gz" } ], "1.0.3c": [ { "comment_text": "", "digests": { "md5": "07c24b7daeda99fd25032c2eb7872f97", "sha256": "6bb8ffa65e110df8af930f44addcfdfd29917c3f529d939d4ba157a9aeb7b3d7" }, "downloads": -1, "filename": "django-pyfs-1.0.3c.tar.gz", "has_sig": false, "md5_digest": "07c24b7daeda99fd25032c2eb7872f97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8637, "upload_time": "2015-11-24T21:30:49", "url": "https://files.pythonhosted.org/packages/79/73/46b94507bf5565b3cc85aa8a2745950778c867862c3812d36341f545ef4c/django-pyfs-1.0.3c.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "14eda9dca992c20d3ce99e296fac68bf", "sha256": "e093b2628a13e93339909c09996062946796cc758a17354e97ff31a650760e4e" }, "downloads": -1, "filename": "django-pyfs-1.0.4.tar.gz", "has_sig": false, "md5_digest": "14eda9dca992c20d3ce99e296fac68bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8636, "upload_time": "2015-11-24T21:33:52", "url": "https://files.pythonhosted.org/packages/9d/c4/881018a0245c4601b1f78d6bf18792bfe9ae315319339b052357bad80fb5/django-pyfs-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "b854a64149521855c69e88a8c0fba674", "sha256": "c9761931ef042d7593036393d0bb3fce3939a4cb943e06bdb916d2933ddcfb10" }, "downloads": -1, "filename": "django_pyfs-1.0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "b854a64149521855c69e88a8c0fba674", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11343, "upload_time": "2017-01-18T21:10:48", "url": "https://files.pythonhosted.org/packages/ff/08/075b932a112b604c301a088adb38641b14d1b79ccbbe6a5e19b26fdbd9d5/django_pyfs-1.0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dcbe74d322f664381bb0cd84b72eb337", "sha256": "85cdb8436c2a469cf855a1169ae318fe6cab42189668d562cb60167863b433d5" }, "downloads": -1, "filename": "django_pyfs-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dcbe74d322f664381bb0cd84b72eb337", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11357, "upload_time": "2017-01-19T00:05:53", "url": "https://files.pythonhosted.org/packages/a0/34/dcca499101f065cd277da9a387896f45319aa53b9e3ea232dc14e7f742f6/django_pyfs-1.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9127193afb334a904e526c80ec06ed6b", "sha256": "cfa05369efd6c1e72d17617d5546df7ca986a82b0cc0edff224096e976f1c0e7" }, "downloads": -1, "filename": "django-pyfs-1.0.5.tar.gz", "has_sig": false, "md5_digest": "9127193afb334a904e526c80ec06ed6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13078, "upload_time": "2017-01-18T21:10:50", "url": "https://files.pythonhosted.org/packages/fa/59/df03a9024c48bef715288032b5c7e0437b47d725020ff03a2181a2152958/django-pyfs-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "43dc8154958d133d18c3d99dce19ce29", "sha256": "2fd30d821a42d4bf7af60f2057fcda56c7f8d0d8612761c6cd73d666af5b710f" }, "downloads": -1, "filename": "django_pyfs-1.0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "43dc8154958d133d18c3d99dce19ce29", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11414, "upload_time": "2017-06-23T17:24:43", "url": "https://files.pythonhosted.org/packages/34/22/a958d60f7ce2028ac99cb5af254c3f9eb312327c2556cae6eb84dff2f686/django_pyfs-1.0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9094a779ae67deedeb85ff869ba3abe0", "sha256": "b97621342356a28ff224c6d1fd6f20608781de3bed8ff08f1b85d095db8d4217" }, "downloads": -1, "filename": "django_pyfs-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "9094a779ae67deedeb85ff869ba3abe0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11417, "upload_time": "2017-06-23T17:25:52", "url": "https://files.pythonhosted.org/packages/77/9a/a11b586f11670704fe85f5e06f8e1b5bae949f7f5a55993fe2efe6805c9e/django_pyfs-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8895f8c8667db72d098cb11d500ce09d", "sha256": "712b78e1fa44b34f5b54893a6bff9165347fb27e2fe70af4771727bc44e43520" }, "downloads": -1, "filename": "django-pyfs-1.0.6.tar.gz", "has_sig": false, "md5_digest": "8895f8c8667db72d098cb11d500ce09d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13139, "upload_time": "2017-06-23T17:24:45", "url": "https://files.pythonhosted.org/packages/6f/c2/2d973bac6037aca292c3adffebe400de8a8ba764966056c8526276922e12/django-pyfs-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "7dcca662c9cf3aa276aa312e4d8ea9a2", "sha256": "b97610a5b147292112eb0dc6e3b9721534f59963fa8c79490c2af2af6aaef8df" }, "downloads": -1, "filename": "django_pyfs-1.0.7-py2-none-any.whl", "has_sig": false, "md5_digest": "7dcca662c9cf3aa276aa312e4d8ea9a2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11419, "upload_time": "2017-09-26T20:20:40", "url": "https://files.pythonhosted.org/packages/a3/cb/7f0c58d7062771cf6cb269ea38c92bf6fc0ff85c3b7701a17b7a985cf6a5/django_pyfs-1.0.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "782ffd9f3d011d28d3ff920406a8edaf", "sha256": "eda07b6e37e137fb3aa657a7cb598ec41991a1020b21beaa5ce7eada1d58e8fa" }, "downloads": -1, "filename": "django_pyfs-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "782ffd9f3d011d28d3ff920406a8edaf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11419, "upload_time": "2017-09-26T20:20:53", "url": "https://files.pythonhosted.org/packages/f2/c0/4d370f274876d50c015beb44f85be78bb0510775edd788efe7096939fe96/django_pyfs-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2d7f23708ae1475957ae050a6ee13ef", "sha256": "5d4a48b337816f2afce1ec3b2551ee4de56cbf088028df4dd0b3e300db830f2a" }, "downloads": -1, "filename": "django-pyfs-1.0.7.tar.gz", "has_sig": false, "md5_digest": "b2d7f23708ae1475957ae050a6ee13ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13129, "upload_time": "2017-09-26T20:20:42", "url": "https://files.pythonhosted.org/packages/02/36/823ba4b2ea026fe01c3c2af8790e97510afa4ca33f8170211893ffa7a50a/django-pyfs-1.0.7.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "757066c82d915f1158fd21c2f28f8fb5", "sha256": "6c7280fc369220024f7056e082771d2d0be2f88707b1d4c2fd4e2cbe247f0f1e" }, "downloads": -1, "filename": "django_pyfs-2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "757066c82d915f1158fd21c2f28f8fb5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11182, "upload_time": "2017-12-20T22:32:58", "url": "https://files.pythonhosted.org/packages/a2/4c/972d9fcfd14f03935fea1a86967f2652e0aad77ac240ad53b2ffa3cf51f7/django_pyfs-2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c45a7ed5e47a95389882d187059a41f", "sha256": "c0fc677459d74341fb94724d993bd1ec9251b3c3f9e83fc3b0e9c73fa44bd43c" }, "downloads": -1, "filename": "django_pyfs-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6c45a7ed5e47a95389882d187059a41f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11142, "upload_time": "2017-12-20T22:33:13", "url": "https://files.pythonhosted.org/packages/b9/c2/44483b54eb6dcc7776abd0221460bd4848ef9ae985755cca9e79fae7331d/django_pyfs-2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b37d78fabac469d8d1d704b65580c0c", "sha256": "d7460612755ad8ce58b362c5fd09dd4af90fa2138047f732c91ea6806a2d0f6f" }, "downloads": -1, "filename": "django-pyfs-2.0.tar.gz", "has_sig": false, "md5_digest": "6b37d78fabac469d8d1d704b65580c0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12921, "upload_time": "2017-12-20T22:33:00", "url": "https://files.pythonhosted.org/packages/3f/06/78a7022e71da31831bd1a53fc35518a69b9060eef74835facc3287e5428b/django-pyfs-2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "757066c82d915f1158fd21c2f28f8fb5", "sha256": "6c7280fc369220024f7056e082771d2d0be2f88707b1d4c2fd4e2cbe247f0f1e" }, "downloads": -1, "filename": "django_pyfs-2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "757066c82d915f1158fd21c2f28f8fb5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11182, "upload_time": "2017-12-20T22:32:58", "url": "https://files.pythonhosted.org/packages/a2/4c/972d9fcfd14f03935fea1a86967f2652e0aad77ac240ad53b2ffa3cf51f7/django_pyfs-2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c45a7ed5e47a95389882d187059a41f", "sha256": "c0fc677459d74341fb94724d993bd1ec9251b3c3f9e83fc3b0e9c73fa44bd43c" }, "downloads": -1, "filename": "django_pyfs-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6c45a7ed5e47a95389882d187059a41f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11142, "upload_time": "2017-12-20T22:33:13", "url": "https://files.pythonhosted.org/packages/b9/c2/44483b54eb6dcc7776abd0221460bd4848ef9ae985755cca9e79fae7331d/django_pyfs-2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b37d78fabac469d8d1d704b65580c0c", "sha256": "d7460612755ad8ce58b362c5fd09dd4af90fa2138047f732c91ea6806a2d0f6f" }, "downloads": -1, "filename": "django-pyfs-2.0.tar.gz", "has_sig": false, "md5_digest": "6b37d78fabac469d8d1d704b65580c0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12921, "upload_time": "2017-12-20T22:33:00", "url": "https://files.pythonhosted.org/packages/3f/06/78a7022e71da31831bd1a53fc35518a69b9060eef74835facc3287e5428b/django-pyfs-2.0.tar.gz" } ] }