为每个人提供静态文件管理。
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复杂的特性都必须添加 对图书馆的重要价值被接受。
如果您想参与,请执行以下操作:
- 确认你的想法还没有被提出。检查打开的和 GitHub上已关闭的问题。
- 在github上派生存储库并进行更改。
- 在可能的情况下,编写一个可以重现错误的测试,或者将测试 新功能。
- 发送拉取请求。别忘了将自己添加到作者文件中。
历史记录
0.0.5(2013-03-07)
- 更详细的元数据处理。
- 仅在需要或强制时更新。
0.0.4(2013-03-03)
- 修复包括整个路径的密钥名。
- 添加默认minifier dict的基础工作。
- update()helper方法现在接受一个可选的输入目录。
- 添加一个示例collect_static脚本。
- 将s3 acl设置为允许公共读取访问。