基于flask缩略图,使用flask框架在amazon s3(或本地存储)上创建图像缩略图的扩展。
flask-thumbnails-s3的Python项目详细描述
基于flask缩略图,使用flask框架在amazon s3(或本地存储)上创建图像缩略图的扩展。
安装
使用pip:
安装运行pip install flask-thumbnails-s3
将Thumbnail添加到扩展文件:
fromflask_thumbnails_s3importThumbnailapp=Flask(__name__)thumb=Thumbnail(app)
在您的设置中添加MEDIA_FOLDER和MEDIA_URL,以及各种与s3相关的值:
app.config['MEDIA_FOLDER']='/home/www/media'app.config['MEDIA_URL']='/media/'app.config['THUMBNAIL_S3_STORAGE_TYPE']='s3'app.config['THUMBNAIL_S3_BUCKET_NAME']='bucket-foo'app.config['THUMBNAIL_S3_ACCESS_KEY_ID']='key-here'app.config['THUMBNAIL_S3_ACCESS_KEY_SECRET']='secret-here'app.config['THUMBNAIL_S3_USE_HTTPS']=Trueapp.config['THUMBNAIL_S3_STATIC_ROOT_PARENT']='/path/to/project/root/'
示例用法
在Jinja2模板中使用:
<img src="{{ 'image.jpg'|thumbnail('200x200', storage_type='s3', bucket_name='bucket-foo') }}" alt="" /> <img src="{{ 'image.jpg'|thumbnail('200x200', crop='fit', quality=100) }}" alt="" />
要获得一个完整的、可工作的flask应用程序,它演示了flask-thumbnails-s3的实际操作,请查看flask-s3-save-example。
开发和生产
产量
在生产中,需要在Web服务器中添加媒体目录。
发展
要服务上载的文件,需要一个helper函数,其中/media/您的设置app.config['MEDIA_URL']:
fromflaskimportsend_from_directory@app.route('/media/<regex("([\w\d_/-]+)?.(?:jpe?g|gif|png)"):filename>')defmedia_file(filename):returnsend_from_directory(app.config['MEDIA_THUMBNAIL_FOLDER'],filename)
选项设置
如果要将缩略图存储在MEDIA_FOLDER以外的文件夹中,则需要手动设置它:
app.config['MEDIA_THUMBNAIL_FOLDER']='/home/www/media/cache'app.config['MEDIA_THUMBNAIL_URL']='/media/cache/'
致谢
这里的大部分代码都基于dmitriy sokolov的flask缩略图:
https://github.com/silentsokolov/flask-thumbnails
感谢多面体缩略图的作者和贡献者,这个代码库的基础,以及允许这样的叉车的慷慨许可条款。