为每个人提供静态文件管理。

collectr的Python项目详细描述


越来越多,我们发现自己在存储静态网站文件-css, javascript、图像和更多-关于Amazon S3。一些 我们这样做是因为我们使用像Heroku和 不想强迫静态文件通过我们的网络。我们其他人也这么做 为了避免在我们自己的服务器上托管这些服务器带来的巨大带宽成本。 还有一些人这样做是为了利用s3的规模和分布式特性。

然而,管理我们的s3文件可能是一件痛苦的事。每次我们换衣服的时候 将他们缩小并重新部署。我们还需要设置所需的所有元数据: 像缓存控制头之类的东西。这可能是无聊和容易出错的。收藏家 旨在帮助解决这个问题。

使用收集器

collector是在 boto库。这样你就可以插上插头 不管你怎么看,把collector放到你的任何python代码中。对于那些想要 不过,collector还提供了一个示例脚本 非常适合用于任何django项目。

如果您想要简单,可以使用这样的收集器:

import collectr
collectr.update('path/to/static/files', 'bucket-name')

collector将扫描目录,缩小任何可以使用 不管你的系统上有什么工具,把你所有的文件上传到 指定的S3桶。S3上已经存在的任何东西都将拥有它的所有 元数据持久化。

当然,你可以有更多的控制权。

import collectr
statics = collectr.StaticDir('path/to/static/files')
statics.input_directory = 'path/to/other/dir'
statics.minifier = 'yuicompressor -o {out_name} {in_name}'
statics.force_update = True
statics.ignore = ['.*\.jpg', '.*\.json']
statics.metadata = {'Cache-Control': 'max-age=3600'}
statics.update('bucket-name')

不过,在做任何事情之前,请确保您有自己的环境变量 设置。您需要将aws_access_key_id和aws_secret_access_key设置为 正确的值。

功能

  • 静态文件缩小。
  • 忽略筛选器。
  • 多目录管理。
  • 元数据管理。

安装

要安装收集器:

$ pip install collectr

如果您没有pip并且无法安装,您应该向 系统管理员,然后执行:

$ easy_install collectr

贡献

collector欢迎您的贡献,包括bug修复和新功能。任何特征 请求应强烈考虑对api的影响。API清晰度 比新特性更重要,因此任何使api复杂的特性都必须添加 对图书馆的重要价值被接受。

如果您想参与,请执行以下操作:

  1. 确认你的想法还没有被提出。检查打开的和 GitHub上已关闭的问题。
  2. 在github上派生存储库并进行更改。
  3. 在可能的情况下,编写一个可以重现错误的测试,或者将测试 新功能。
  4. 发送拉取请求。别忘了将自己添加到作者文件中。

历史记录

0.0.5(2013-03-07)

  • 更详细的元数据处理。
  • 仅在需要或强制时更新。

0.0.4(2013-03-03)

  • 修复包括整个路径的密钥名。
  • 添加默认minifier dict的基础工作。
  • update()helper方法现在接受一个可选的输入目录。
  • 添加一个示例collect_static脚本。
  • 将s3 acl设置为允许公共读取访问。

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

推荐PyPI第三方库


热门话题
java如何设置用户的特定输入,即仅8位数字?   java嗅探访问的站点并保存到文件   java系统。出来同时使用字符串和int时的println行为   java在一个变量的右边可以做多少算术运算   java我可以将RequestToken发送到web浏览器,还是应该将其存储在数据库中?   java Android错误:应用程序意外停止,请重试   Java中的字符串如何提取   java向XmlObject的所有标记添加前缀   web服务无法从同一网络访问web服务   静态变量和实例变量之间的java性能差异   java无法从Thymeleaf获取transactionsynchronized会话   java为什么实现runnable总是交织结果?   宽度优先搜索Java最短距离   java Hibernate额外懒惰不工作   java为什么程序稍后会输出代码中的其他内容?   java如何在正则表达式中使用插入符号和美元?   java即时搜索/在JTable单元格中自动完成   这个java forloop是如何工作的?   java NullPointerException MainFragment facebook登录