Source code for flask_fs
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from os.path import join
from .__about__ import __version__, __description__ # noqa: Facade pattern
try:
from flask import current_app
from .backends import BaseBackend, DEFAULT_BACKEND # noqa: Facade pattern
from .errors import * # noqa: Facade pattern
from .files import * # noqa: Facade pattern
from .storage import Storage # noqa: Facade pattern
except ImportError as e:
print(e)
[docs]def by_name(name):
'''Get a storage by its name'''
return current_app.extensions['fs'].get(name)
[docs]def init_app(app, *storages):
'''
Initialize Storages configuration
Register blueprint if necessary.
:param app: The `~flask.Flask` instance to get the configuration from.
:param storages: A `Storage` instance list to register and configure.
'''
# Set default configuration
app.config.setdefault('FS_SERVE', app.config.get('DEBUG', False))
app.config.setdefault('FS_ROOT', join(app.instance_path, 'fs'))
app.config.setdefault('FS_PREFIX', None)
app.config.setdefault('FS_URL', None)
app.config.setdefault('FS_BACKEND', DEFAULT_BACKEND)
app.config.setdefault('FS_IMAGES_OPTIMIZE', False)
state = app.extensions['fs'] = app.extensions.get('fs', {})
for storage in storages:
storage.configure(app)
state[storage.name] = storage
from .views import bp
app.register_blueprint(bp, url_prefix=app.config['FS_PREFIX'])