{ "info": { "author": "Axel Haustant", "author_email": "noirbizarre@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "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 :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Software Distribution" ], "description": "========\nFlask-FS\n========\n\n.. image:: https://travis-ci.org/noirbizarre/flask-fs.svg?tag=v0.6.1\n :target: https://travis-ci.org/noirbizarre/flask-fs\n :alt: Build status\n.. image:: https://coveralls.io/repos/noirbizarre/flask-fs/badge.svg?tag=v0.6.1\n :target: https://coveralls.io/r/noirbizarre/flask-fs?tag=v0.6.1\n :alt: Code coverage\n.. image:: https://readthedocs.org/projects/flask-fs/badge/?version=0.6.1\n :target: http://flask-fs.readthedocs.org/en/latest/\n :alt: Documentation status\n\nSimple and easy file storages for Flask\n\n\nCompatibility\n=============\n\nFlask-FS requires Python 2.7/3.4+ and Flask 0.10+.\n\nAmazon S3 support requires Boto3.\n\nGridFS support requires PyMongo 3+.\n\nOpenStack Swift support requires python-swift-client.\n\n\nInstallation\n============\n\nYou can install Flask-FS with pip:\n\n.. code-block:: console\n\n $ pip install flask-fs\n # or\n $ pip install flask-fs[s3] # For Amazon S3 backend support\n $ pip install flask-fs[swift] # For OpenStack swift backend support\n $ pip install flask-fs[gridfs] # For GridFS backend support\n $ pip install flask-fs[all] # To include all dependencies for all backends\n\n\nQuick start\n===========\n\n.. code-block:: python\n\n from flask import Flask\n import flask_fs as fs\n\n app = Flask(__name__)\n fs.init_app(app)\n\n images = fs.Storage('images')\n\n\n if __name__ == '__main__':\n app.run(debug=True)\n\n\nDocumentation\n=============\n\nThe full documentation is hosted `on Read the Docs `_\n\nChangelog\n=========\n\n0.6.1 (2018-04-19)\n------------------\n\n- Fix a race condition on local backend directory creation\n- Proper content type handling on GridFS (thanks to @rclement)\n\n0.6.0 (2018-03-27)\n------------------\n\n- Added ``copy()`` and ``move()`` operations\n- ``delete()`` now supports directories (or prefixes for key/value stores)\n- Improve ``metadata()`` ``mime`` handling\n- Added explicit ``ImageField.full(external=False)``\n\n0.5.1 (2018-03-12)\n------------------\n\n- Fix ``local`` backend ``list_files()`` nested directories handling\n\n0.5.0 (2018-03-12)\n------------------\n\n- Added ``metadata`` method to ``Storage`` to retrieve file metadata\n- Force ``boto3 >= 1.4.5`` because of API change (lifecycle)\n- Drop Python 3.3 support\n- Create parent directories when opening a local file in write mode\n\n0.4.1 (2017-06-24)\n------------------\n\n- Fix broken packaging for Python 2.7\n\n0.4.0 (2017-06-24)\n------------------\n\n- Added backend level configuration ``FS_{BACKEND_NAME}_{KEY}``\n- Improved backend documentation\n- Use setuptools entry points to register backends.\n- Added `NONE` extensions specification\n- Added `list_files` to `Storage` to list the current bucket files\n- Image optimization preserve file type as much as possible\n- Ensure images are not overwritted before rerendering\n\n0.3.0 (2017-03-05)\n------------------\n\n- Switch to pytest\n- ``ImageField`` optimization/compression.\n Resized images are now compressed.\n Default image can also be optimized on upload with ``FS_IMAGES_OPTIMIZE = True``\n or by specifying `optimize=True` as field parameter.\n- ``ImageField`` has now the ability to rerender images with the ``rerender()`` method.\n\n0.2.1 (2017-01-17)\n------------------\n\n- Expose Python 3 compatibility\n\n0.2.0 (2016-10-11)\n------------------\n\n- Proper github publication\n- Initial S3, GridFS and Swift backend implementations\n- Python 3 fixes\n\n\n0.1 (2015-04-07)\n----------------\n\n- Initial release\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/noirbizarre/flask-fs", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flask-fs", "package_url": "https://pypi.org/project/flask-fs/", "platform": "", "project_url": "https://pypi.org/project/flask-fs/", "project_urls": { "Homepage": "https://github.com/noirbizarre/flask-fs" }, "release_url": "https://pypi.org/project/flask-fs/0.6.1/", "requires_dist": null, "requires_python": "", "summary": "Simple and easy file storages for Flask", "version": "0.6.1" }, "last_serial": 3780467, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "551675b7a4230e805a047f2851cc5326", "sha256": "e86f8675ef8a300088a3e1593a613d0cd79fa5ac85f8c89bdbf115a6b5601efa" }, "downloads": -1, "filename": "flask_fs-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "551675b7a4230e805a047f2851cc5326", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 234935, "upload_time": "2015-04-07T21:53:09", "url": "https://files.pythonhosted.org/packages/72/97/93085ee15509a66017bd289289751d15c97f123813e12898eeb5787d1ef3/flask_fs-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "173764cc3e38ccc75f22300e4a1d877e", "sha256": "78a966f37e386c6407be1eb376f1fd5d4acee27af9ea239181fe9eb006ee3e13" }, "downloads": -1, "filename": "flask-fs-0.1.tar.gz", "has_sig": false, "md5_digest": "173764cc3e38ccc75f22300e4a1d877e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19017, "upload_time": "2015-04-07T21:53:04", "url": "https://files.pythonhosted.org/packages/a0/f4/4d127ca7fdfd537b61e59911fd26ee93ccd69ddd73e7ddb13b47fd22934e/flask-fs-0.1.tar.gz" } ], "0.1.dev": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a42038a6904ae4b0480d48346f410218", "sha256": "933710091d7b98bcf6134a60469945af593424607ac7019f543ed7e179c0cc8f" }, "downloads": -1, "filename": "flask_fs-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a42038a6904ae4b0480d48346f410218", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 29918, "upload_time": "2016-10-11T00:08:18", "url": "https://files.pythonhosted.org/packages/54/f9/ffcc148c61b2abdcd19a4b87a326e9e89c920d0ec2ad369dc1e20bb68c98/flask_fs-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b797d14a617da6ce0a2752ecce32fab", "sha256": "c433137bc34fed1d03a938e36daf49ea44a3d947d7d3e6d18efe4309029bbd78" }, "downloads": -1, "filename": "flask-fs-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7b797d14a617da6ce0a2752ecce32fab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21774, "upload_time": "2016-10-11T00:08:15", "url": "https://files.pythonhosted.org/packages/cc/3b/9afcef0c58eabb5a16dc8d4f2de946b0a28ba077bc9560980d2bf4a7d188/flask-fs-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1339bfb4dbad5d4165214a4457e360a4", "sha256": "b675f72e6e405c052836c065dc01ed91c9b2bcc25d590f42e341b713269d8a8b" }, "downloads": -1, "filename": "flask_fs-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1339bfb4dbad5d4165214a4457e360a4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 29974, "upload_time": "2017-01-17T08:52:12", "url": "https://files.pythonhosted.org/packages/87/97/25a556f3db7c8913c274821ca9914848d49b1f9b1fc415b5227a88da7243/flask_fs-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "868a9446e9835378420f8b71e5915aaf", "sha256": "12bcbecb01d6dc449846d4e3d42be93be456c4760274e3e44f3ea7f24ebbe523" }, "downloads": -1, "filename": "flask-fs-0.2.1.tar.gz", "has_sig": false, "md5_digest": "868a9446e9835378420f8b71e5915aaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21902, "upload_time": "2017-01-17T08:52:10", "url": "https://files.pythonhosted.org/packages/c4/ac/af0da6be968aafa885aa7f36e44ef96676585e0e882919311e0661379f9b/flask-fs-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "526389164501c6d0a247964fbcd82dc0", "sha256": "2414c3e2d9bb0d36fe272b5dbddb71504b9df19a3e791e1f5f79848afd0a50b6" }, "downloads": -1, "filename": "flask_fs-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "526389164501c6d0a247964fbcd82dc0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 30818, "upload_time": "2017-03-04T23:22:46", "url": "https://files.pythonhosted.org/packages/0d/e2/4bd6276d2263a51a59ac85c52c515fad5096b95b7d5e17d5b648431ecd83/flask_fs-0.3.0-py2.py3-none-any.whl" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "5961b20784c7551816cec1c2aabc584f", "sha256": "7c94dab891d4bbf7dbbbed092ebe3dbea3d9bbd085bfffc47588d018205b340b" }, "downloads": -1, "filename": "flask_fs-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5961b20784c7551816cec1c2aabc584f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 32533, "upload_time": "2017-06-24T18:14:06", "url": "https://files.pythonhosted.org/packages/2d/17/d09844ae91e5a43a4c613f2dde1ffdeee3f2b94dc848b74dd96e7dbd16b8/flask_fs-0.4.0-py2.py3-none-any.whl" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "6f3e62438cd3219619997fcab8e86421", "sha256": "b288623645d72301cc80ceb3b313e4afc8cabdad5c18d0788360671361bd2efe" }, "downloads": -1, "filename": "flask_fs-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f3e62438cd3219619997fcab8e86421", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 33122, "upload_time": "2017-06-24T19:16:58", "url": "https://files.pythonhosted.org/packages/22/da/cc90c6621847c02c17e0166cd72fe452461410b5393d473c887e4a8094e7/flask_fs-0.4.1-py2.py3-none-any.whl" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "67a6c94a38655d1e1d3969ce2fe28ab6", "sha256": "323975c4508caa7ffd46e688cc7ddfe9af5a0de91494b262c7ec193c26339be5" }, "downloads": -1, "filename": "flask_fs-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "67a6c94a38655d1e1d3969ce2fe28ab6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 34765, "upload_time": "2018-03-12T12:09:01", "url": "https://files.pythonhosted.org/packages/dc/9e/9647211d713956c4504ac57bc780d7cf3f02855f8161d1c2c974b29cb1ab/flask_fs-0.5.0-py2.py3-none-any.whl" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "75c79be7b197476eb176323260bc06dc", "sha256": "86216278f39224ca5c1561ddc3410e7a267ceafbcf5fde9a9d2713967c350c70" }, "downloads": -1, "filename": "flask_fs-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "75c79be7b197476eb176323260bc06dc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 34916, "upload_time": "2018-03-12T15:09:53", "url": "https://files.pythonhosted.org/packages/bc/c5/356f8ce440966c33eccaf58c5f7efe791242c7be6cbaf97dd621ef2b90e4/flask_fs-0.5.1-py2.py3-none-any.whl" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "c2207ac3fdcd24808d796f78281a1c77", "sha256": "92d37b210649b046a8fc553f6d8c27eb6f67b5607b1812e6205a4997692333b5" }, "downloads": -1, "filename": "flask_fs-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c2207ac3fdcd24808d796f78281a1c77", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 36097, "upload_time": "2018-03-27T16:15:44", "url": "https://files.pythonhosted.org/packages/fb/19/e71a6b4f4d5299ab1ddd4be0a5fc5214add4b38782b11b6c1073581b7b3d/flask_fs-0.6.0-py2.py3-none-any.whl" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "8d07bf6933c4fa71ecb421b8563c0d3d", "sha256": "1404c1c190bb82d25cb4cdc9194ceab8f591987d42844c76e95dbbbd46400d43" }, "downloads": -1, "filename": "flask_fs-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d07bf6933c4fa71ecb421b8563c0d3d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 36599, "upload_time": "2018-04-19T12:39:10", "url": "https://files.pythonhosted.org/packages/2a/fb/3699763607db381d56ef1b83e4e4aa923b8f0610008b9c8b2265acef9b55/flask_fs-0.6.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d07bf6933c4fa71ecb421b8563c0d3d", "sha256": "1404c1c190bb82d25cb4cdc9194ceab8f591987d42844c76e95dbbbd46400d43" }, "downloads": -1, "filename": "flask_fs-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d07bf6933c4fa71ecb421b8563c0d3d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 36599, "upload_time": "2018-04-19T12:39:10", "url": "https://files.pythonhosted.org/packages/2a/fb/3699763607db381d56ef1b83e4e4aa923b8f0610008b9c8b2265acef9b55/flask_fs-0.6.1-py2.py3-none-any.whl" } ] }