使用元数据管理图像和其他文件的存储。还提供了一个在金字塔上完成的http api。

keepluggable的Python项目详细描述


范围

keepluggable是开源的, (MIT licensed), 高度可配置的python库管理图像和 其他带有元数据的文档(任何类型的文件,真的)。

文档位于http://docs.nando.audio/keepluggable/latest/

文件元数据可以存储在与文件负载不同的位置。 这是推荐的,因为许多操作,例如列出文件, 不要涉及实际的文件内容,所以应该避免加载它。 此外,有效负载应该针对服务和元数据进行优化 优化查询。

对于文件有效负载,我们目前已经实现了一个存储 亚马逊S3。还有一个非常简单的后端存储 本地文件系统中的文件(在开发过程中很有用)。

为了(可选地)存储元数据,我们目前提供了一个基本的sqlalchemy 后端为您子类化。

在这两种情况下,您都可以轻松地编写其他存储后端。

使用此库,您可以更轻松地让用户上载图像 (或任何类型的文件)并输入有关它们的元数据,例如名称, 说明、日期、地点、alt文本、标题属性等。

自动找到一些元数据,例如文件大小、mime类型, 图像大小、纵横比、MD5校验和等。

代码是高度解耦的,因此您可以轻松地调整行为。

业务规则在单独的层中实现 (与任何存储策略和任何用户界面隔离) 称为“动作”层。(这通常被称为“服务”层, 但我们称之为“行动”。)这使我们有可能 存储后端并使用任何web框架或其他ui框架。

每个应用程序都有自己的业务规则,因此 您将子类化提供的操作层,以调整工作流 你的目的。

其中一个“动作”是上传图像处理的可插拔策略。 例如,默认策略转换原始上载的图像 以JPEG格式(因此它永远不会存储不必要的大BMP)。 可以选择将原始图像存储为任意大小,然后 创建可配置的较小版本。

有些相机不旋转照片,只是将方向元数据添加到 图像文件,因此keepluggable会在创建缩略图之前为您旋转它。

Get started with keepluggable!

协作

我们需要你的帮助。我们对功能请求、建议和 bug reportspull requests, 以相反的开放顺序。

迁移到Keepluggable 0.8

keepluggable 0.8改变了文件的存储方式。怎样?

  • 它使用“/”字符而不是“-”分隔名称空间。这个 在s3管理控制台中创建更好的用户体验。
  • 如果愿意,现在每个环境只能使用一个bucket。 多个可维护的集成(在单个应用程序中)可以使用 相同的bucket,因为每个keepughable集成都可以使用 自己的目录。
  • 在bucket名称和文件名之间,您可以创建自己的 目录方案(例如“/users/42/avatars/angry_mode/”)。我在打电话 这是一条“中间道路”。请参阅中的函数get_middle_path()orchestrator.py文件。

提供了迁移功能,以便您可以更新旧存储 保持可插拔0.8。请参阅文件中的方法migrate_bucket()amazon_s3.py

配置设置的名称也在0.8中更改。

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

推荐PyPI第三方库


热门话题
IE中的java跨域cookie问题   重复java中已经满足的循环   编译java RMI服务器时出错   JavaServlet POST中作为参数传递的javascript大型JSON数组数据为空   java片段未每次刷新/调用   java无法编译。错误消息   java如何构造大型类?   java Hibernate:TableThingsDB。事情并不存在   java如何操作从匹配项创建的数组。发现   循环以搜索和显示数组Java的某些部分   加载或注册SQLite JDBC驱动程序时出现java问题   活动和服务之间的java连接   JavaGWTG2D:ie8中的drawImage   java在安卓中设置hessian阈值   在Tomcat中使用Logback时发生java错误