跳转到主要内容

Amazon Simple Storage Service (S3) 缓存后端,适用于 Django

项目描述

Build status Code coverage Maintainability

这是 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.pyOPTIONS 字典的键。如果没有明确定义,则遵循 django-storagess3boto 后端的默认值,它从 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_KEYSECRET_KEYBUCKET_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 (6.0 kB 查看散列)

上传时间 源代码

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面