跳转到主要内容

为所有人提供静态文件管理。

项目描述

我们越来越多地将静态网站文件(CSS、JavaScript、图片等)存储在Amazon S3上。我们中的一些人这样做是因为我们使用Heroku等服务,不想强制将静态文件通过我们的网络动态处理。其他人这样做是为了避免与在自己的服务器上托管这些文件相关的巨大带宽成本。还有一些人这样做是为了利用S3的规模和分布式特性。

然而,管理我们的S3文件可能会很痛苦。每次我们更改它们时,都必须压缩并重新上传。我们还需要设置我们想要的全部元数据:比如Cache-Control头信息。这可能会很无聊且容易出错。collectr旨在帮助解决这个问题。

使用collectr

collectr是在boto库之上构建的一系列函数。这使得您可以按需将collectr集成到任何Python代码中。然而,对于那些想要“即用即得”解决方案的人来说,collectr还附带了一个示例脚本,非常适合与任何Django项目一起使用。

如果您想要简单,可以使用collectr如下所示

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

collectr将扫描目录,使用您系统上的任何工具压缩可以压缩的任何内容,并将所有文件上传到指定的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设置为正确的值。

特性

  • 静态文件压缩。

  • 忽略过滤器。

  • 多目录管理。

  • 元数据管理。

安装

要安装collectr

$ pip install collectr

如果您没有 pip 并且无法安装,您应该向您的系统管理员投诉,然后执行以下操作:

$ easy_install collectr

贡献

collectr 欢迎贡献,包括错误修复和新功能。任何功能请求都应充分考虑对 API 的影响。API 清晰度高于新功能,因此任何使 API 复杂化的功能都必须为库增加显著价值才能被接受。

如果您想做出贡献,请执行以下操作:

  1. 检查您的想法是否已经被提出。请检查 GitHub 上的所有 开放和关闭 问题。

  2. 在 GitHub 上分叉存储库并做出您的更改。

  3. 尽可能编写可以重现错误的测试,或可以测试新功能的测试。

  4. 发送一个拉取请求。别忘了将您自己添加到 AUTHORS 文件中。

历史记录

0.0.5 (2013-03-07)

  • 更详细的元数据处理。

  • 只有在需要或强制的情况下才更新。

0.0.4 (2013-03-03)

  • 修复包括完整路径在内的键名。

  • 为默认最小化器字典添加基础。

  • 现在,update() 辅助方法接受一个可选的输入目录。

  • 添加 collect_static 脚本的示例。

  • 将 S3 ACL 设置为允许公共读取访问。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

collectr-0.0.5.tar.gz (8.2 kB 查看哈希)

上传时间

由以下支持