Amazon Simple Storage Service (S3) 缓存后端,适用于 Django
项目描述
这是 Amazon Simple Storage Service (S3) 缓存后端,适用于 Django。它基于 django.core.cache.backends.filebased.FileBasedCache 后端,以类似的方式运行。此后端使用 django-storages 将数据读/写到 S3。它使用 s3boto 存储后端。
传递到此后端的所有键/值都存储在您的 S3 存储桶中的平面目录结构中。它使用 sha1 而不是 md5 来创建文件名。
该项目正在寻找维护者!
安装
使用 pip 从 PyPI 安装
pip install django-s3-cache
配置此后端的使用
CACHES = { 'default': { 'BACKEND': 's3cache.AmazonS3Cache', 'OPTIONS': { 'ACCESS_KEY' : 'Your AWS access key', 'SECRET_KEY' : 'Your AWS secret access key', 'BUCKET_NAME': 'Your AWS storage bucket name', 'LOCATION' : 'directory_prefix', } } }
变更日志
1.4.3 (2019年11月10日)
将许可证从 BSD-3-Clause 更改为 MIT
切换到 Travis-CI
开始使用 pylint 进行测试
内部代码重构和更多测试
配置
Django S3 Cache 支持许多配置选项。它们应定义为上述 settings.py 中 OPTIONS 字典的键。如果没有明确定义,则遵循 django-storages 中 s3boto 后端的默认值,它从 settings.py 中读取它们。
注意-1: settings.py 中的一些值可能由 boto 和其他 AWS 感知 Django 组件全局使用,因为它们遵循格式 AWS_XXXX。如果您不想遇到问题,最好明确地将您的值定义为缓存选项。
注意-2: 自版本 1.2 以来,Django S3 Cache 与 django-storages v1.1.8 兼容,后者已更改了配置变量的名称。所有新变量都应使用小写,AWS 密钥变量已更名。有关确切名称,请参阅 s3boto.py 中的 S3BotoStorage 类定义。Django S3 Cache 通过实现其先前的 OPTIONS 语法以向后兼容来允许更容易的升级。旧名称映射到新名称,在传递给 S3BotoStorage 之前,所有选项都转换为小写。上面的示例显示了新语法。
注意-3: 在版本 1.3 之前,处理 LOCATION 选项存在一个 严重错误。如果使用缓存对象将存储在定义的目录下,然而清除和清除缓存 没有 考虑这一点。cache.clear() 或 cache._cull() 将 删除整个存储桶。这已在版本 1.3 中修复!
注意-4: 在版本 1.2 到 1.3 期间,处理 OPTIONS 的向后兼容性中存在一个 错误。如果您已经使用新的 ACCESS_KEY、SECRET_KEY、BUCKET_NAME 语法,它将被覆盖,并且 boto 将由于缺少认证参数而崩溃。这已在版本 1.4 中修复!
一些值得注意的选项包括
LOCATION - 存储缓存文件的目录前缀。默认为空字符串,表示根目录;
DEFAULT_ACL == private - 创建对象的默认 ACL。与 s3boto 存储后端不同,我们将其设置为 private;
BUCKET_ACL == DEFAULT_ACL - 如果自动创建存储桶,则 ACL。默认设置为 private。最好为缓存文件使用单独的存储桶;
REDUCED_REDUNDANCY - 如果您想节省一些存储成本,请将其设置为 True;
IS_GZIPPED - 设置为 True 以启用 Gzip 压缩。与 GZIP_CONTENT_TYPES 一起使用。有关更多信息,请参阅 django-storages 文档。
Django S3 实现了与标准文件系统后端类似的清除策略。它将遵循以下选项
MAX_ENTRIES - 在删除旧值之前,缓存中允许的最大条目数。如果为 0,则禁用清除。此参数默认为 300;
CULL_FREQUENCY - 当达到 MAX_ENTRIES 时清除的条目比例。实际比例是 1/CULL_FREQUENCY,因此当达到 MAX_ENTRIES 时,将清除一半的条目,请将 CULL_FREQUENCY 设置为 2;
贡献
源代码和问题跟踪器位于 https://github.com/atodorov/django-s3-cache
项目详情
django-s3-cache-1.4.3.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | b01300df853060ac0f37db379a572657708adf7cb45e75f341d1a8096a0761b3 |
|
MD5 | e8417a3d24dc271259aec405bb581beb |
|
BLAKE2b-256 | d4f8336ba05b06e185fa289aa3e1e0b3ba1a5674de64e66da2759f5383278dcb |