Configuration¶
Setting up your flask app to use Flask-Resize¶
Using direct initialization:
import flask
import flask_resize
app = flask.Flask(__name__)
app.config['RESIZE_URL'] = 'https://mysite.com/'
app.config['RESIZE_ROOT'] = '/home/user/myapp/images'
resize = flask_resize.Resize(app)
Using the app factory pattern:
import flask
import flask_resize
resize = flask_resize.Resize()
def create_app(**config_values):
app = flask.Flask()
app.config.update(**config_values)
resize.init_app(app)
return app
# And later on...
app = create_app(
RESIZE_URL='https://mysite.com/',
RESIZE_ROOT='/home/user/myapp/images'
)
Setting up for standalone usage¶
One doesn’t actually need to involve Flask at all to utilize the resizing (perhaps one day we’ll break out the actual resizing into its own package). E.g:
import flask_resize
config = flask_resize.configuration.Config(
url='https://mysite.com/',
root='/home/user/myapp/images',
)
resize = flask_resize.make_resizer(config)
New in version 2.0.0: Standalone mode was introduced
Available settings¶
Required for file
storage¶
You need to set at least two configuration options when using the default file
storage:
# Where your media resides
RESIZE_ROOT = '/path/to/your/media/root/'
# The URL where your media is served at. For the best performance you
# should serve your media with a proper web server, under a subdomain
# and with cookies turned off.
RESIZE_URL = 'http://media.yoursite.com/'
Required for s3
storage¶
For Amazon S3 storage you only need to do the following if you’ve already
configured Amazon Web Services with aws configure
(or similar). Default
section configuration can then be extracted using the included botocore
package.
RESIZE_STORAGE_BACKEND = 's3'
RESIZE_S3_BUCKET = 'mybucket'
If you haven’t done so then you need to manually specify the following options in addition to above:
RESIZE_S3_ACCESS_KEY = 'dq8rJLaMtkHEze4example3C1V'
RESIZE_S3_SECRET_KEY = 'MC9T4tRqXQexample3d1l7C9sG3M9qes0VEHiNJTG24q4a5'
RESIZE_S3_REGION = 'eu-central-1'
New in version 1.0.0: RESIZE_S3_ACCESS_KEY
, RESIZE_S3_SECRET_KEY
and RESIZE_S3_BUCKET
were added.
New in version 1.0.1: RESIZE_S3_REGION
was added.
Optional¶
There are also some optional settings. They are listed below, with their default values.
# Where the resized images should be saved. Relative to `RESIZE_ROOT`
# if using the file-based storage option.
RESIZE_TARGET_DIRECTORY = 'resized-images'
# Set to False if you want Flask-Resize to create sub-directories for
# each resize setting instead of using a hash.
RESIZE_HASH_FILENAME = True
# Change if you want to use something other than sha1 for your hashes.
# Supports all methods that hashlib supports.
RESIZE_HASH_METHOD = 'sha1'
# Useful when testing. Makes Flask-Resize skip all processing and just
# return the original image URL.
RESIZE_NOOP = False
# Which backend to store files in. Defaults to the `file` backend.
# Can be either `file` or `s3`.
RESIZE_STORAGE_BACKEND = 'file'
# Which cache store to use. Currently only redis is supported (`pip install
# flask-resize[redis]`), and will be configured automatically if the
# package is installed and `RESIZE_CACHE_STORE` hasn't been set
# explicitly. Otherwise a no-op cache is used.
RESIZE_CACHE_STORE = 'noop' if redis is None else 'redis'
# Which host to use for redis if it is enabled with `RESIZE_CACHE_STORE`
# This can also be a pre-configured `redis.StrictRedis` instance, in which
# case the redis options below are ignored by Flask-Resize.
RESIZE_REDIS_HOST = 'localhost'
# Which port to use for redis if it is enabled with `RESIZE_CACHE_STORE`
RESIZE_REDIS_PORT = 6379
# Which db to use for redis if it is enabled with `RESIZE_CACHE_STORE`
RESIZE_REDIS_DB = 0
# Which password to use for redis if it is enabled with `RESIZE_CACHE_STORE`. Defaults to not using a password.
RESIZE_REDIS_PASSWORD = None
# Which key to use for redis if it is enabled with `RESIZE_CACHE_STORE`
RESIZE_REDIS_KEY = 0
# If True then GenerateInProgress exceptions aren't swallowed. Default is
# to only raise these exceptions when Flask is configured in debug mode.
RESIZE_RAISE_ON_GENERATE_IN_PROGRESS = app.debug
New in version 0.4.0: RESIZE_NOOP
was added.
New in version 1.0.0: RESIZE_CACHE_STORE
, RESIZE_REDIS_HOST
, RESIZE_REDIS_PORT
, RESIZE_REDIS_DB
and RESIZE_REDIS_KEY
were added.
New in version 1.0.2: RESIZE_STORAGE_BACKEND
was added.
New in version 1.0.4: RESIZE_RAISE_ON_GENERATE_IN_PROGRESS
was added.
New in version 2.0.3: RESIZE_REDIS_PASSWORD
was added.