基于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_FOLDERMEDIA_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

选项

crop='fit'返回图像的大小和裁剪版本,裁剪为请求的纵横比和大小,read more

quality=XX更改输出jpeg缩略图的质量,默认值为85

开发和生产

产量

在生产中,需要在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

感谢多面体缩略图的作者和贡献者,这个代码库的基础,以及允许这样的叉车的慷慨许可条款。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java搜索文本中的字符串模式   SecurityManager引发异常的java Mockito模拟   java(仅限Netbeans)未找到适合jdbc的驱动程序:mysql://localhost   java计算给定字符串所有前缀的哈希值的子字符串的哈希值   java如何避免每次访问REST认证API以使用实际服务   用于HTML的java Jsoup选择器组合   可以复制或引用的java构造函数   Java中的HashMap。搞砸containsKey返回意外值   java数组平均值计算   java是检查字符串是否包含特定字符的最有效方法   java反序列化对象类已更改   java典型的EJB3/JPA/JSF中的事务范围是什么?   Install4j的java错误代码20   java:compileJava在本地项目()依赖项上的多模块项目上持续失败“错误:包x.y.z不存在”   java有一种生成Suppression的方法。现有代码库中checkstyle的xml文件?