flask-fs2 0.7.33
Simple and easy file storages for Flask
License: MIT
Requires Python: >=3.10

=========
Flask-FS2
=========

Simple and easy file storages for Flask.

|CI badge|


Compatibility
=============

Flask-FS requires Python >= 3.10 and Flask/Werkzeug >= 2.0.0.

Amazon S3 support requires Boto3.

GridFS support requires PyMongo 3+.

OpenStack Swift support requires python-swift-client.


Installation
============

You can install Flask-FS with pip:

.. code-block:: console

    $ pip install flask-fs2
    # or
    $ pip install flask-fs2[s3]  # For Amazon S3 backend support
    $ pip install flask-fs2[swift]  # For OpenStack swift backend support
    $ pip install flask-fs2[gridfs]  # For GridFS backend support
    $ pip install flask-fs2[all]  # To include all dependencies for all backends


Quick start
===========

.. code-block:: python

    from flask import Flask
    import flask_fs as fs

    app = Flask(__name__)
    fs.init_app(app)

    images = fs.Storage('images')


    if __name__ == '__main__':
        app.run(debug=True)


Contributions
=============

All contributions are welcome as long as they respect the `C4
contract <https://rfc.zeromq.org/spec:42/C4>`__.

Code must follow the pep8 convention.

About authors
=============

Flask-FS2 is maintained by CGWire, a company based in France. We help animation
and VFX studios to collaborate better through efficient tooling.
We already work with more than 70 studios around the world.

It's a fork of `this project <https://github.com/noirbizarre/flask-fs>`__.

Visit `cg-wire.com <https://cg-wire.com>`__ for more information.

|CGWire Logo|

.. |CI badge| image:: https://github.com/cgwire/flask-fs2/actions/workflows/ci.yml/badge.svg
   :target: https://github.com/cgwire/flask-fs2/actions/workflows/ci.yml
.. |CGWire Logo| image:: https://zou.cg-wire.com/cgwire.png
   :target: https://cg-wire.com

Changelog
=========

Current
-------

0.7.4 (2022-01-24)
------------------

- CGWire will maintain this fork
- Flask-FS2 requires Python 3.7+ and Flask/Werkzeug 2.0.0+
- Remove all code related to Python 2
- Added ``read_chunks()`` operations
- Add region configuration for Swift and S3

0.6.1 (2018-04-19)
------------------

- Fix a race condition on local backend directory creation
- Proper content type handling on GridFS (thanks to @rclement)

0.6.0 (2018-03-27)
------------------

- Added ``copy()`` and ``move()`` operations
- ``delete()`` now supports directories (or prefixes for key/value stores)
- Improve ``metadata()`` ``mime`` handling
- Added explicit ``ImageField.full(external=False)``

0.5.1 (2018-03-12)
------------------

- Fix ``local`` backend ``list_files()`` nested directories handling

0.5.0 (2018-03-12)
------------------

- Added ``metadata`` method to ``Storage`` to retrieve file metadata
- Force ``boto3 >= 1.4.5`` because of API change (lifecycle)
- Drop Python 3.3 support
- Create parent directories when opening a local file in write mode

0.4.1 (2017-06-24)
------------------

- Fix broken packaging for Python 2.7

0.4.0 (2017-06-24)
------------------

- Added backend level configuration ``FS_{BACKEND_NAME}_{KEY}``
- Improved backend documentation
- Use setuptools entry points to register backends.
- Added `NONE` extensions specification
- Added `list_files` to `Storage` to list the current bucket files
- Image optimization preserve file type as much as possible
- Ensure images are not overwritted before rerendering

0.3.0 (2017-03-05)
------------------

- Switch to pytest
- ``ImageField`` optimization/compression.
  Resized images are now compressed.
  Default image can also be optimized on upload with ``FS_IMAGES_OPTIMIZE = True``
  or by specifying `optimize=True` as field parameter.
- ``ImageField`` has now the ability to rerender images with the ``rerender()`` method.

0.2.1 (2017-01-17)
------------------

- Expose Python 3 compatibility

0.2.0 (2016-10-11)
------------------

- Proper github publication
- Initial S3, GridFS and Swift backend implementations
- Python 3 fixes


0.1 (2015-04-07)
----------------

- Initial release