跳转到主要内容

一个将数据存储在S3上的Cubicweb存储

项目描述

摘要

一个将数据存储在S3上的Cubicweb存储。

它是一个标准的Cubicweb存储,类似于BytesFileSystemStorage。例如,如果您想将File.data有效负载存储在S3上,您应该在启动钩子中创建一个S3Storage实例,通常如下所示:

from cubicweb.server.hook import Hook
from cubicweb_s3storage.storages import S3Storage

class S3StorageStartupHook(Hook):
    __regid__ = 'mycube.server-startup-hook'
    events = ('server_startup', 'server_maintenance')

    def __call__(self):
        storage = S3Storage('s3_bucket')
        self.repo.system_source.set_storage('File', 'data', storage)

默认情况下,S3对象键(即S3对象标识符)是在实体创建时生成的随机UUID。如果您想实现另一个键生成算法,必须重写S3Storage.new_s3_key()方法。

与AWS的通信由boto3处理。

配置

S3Storage类构造函数需要一个S3存储桶名称。

如果您想将AWS凭据放在默认文件(~/.aws/credentials)之外的其他文件中,必须设置AWS_CONFIG_FILE环境变量。

如果您想使用除default之外的其他配置文件名,设置AWS_PROFILE环境变量。

如果您希望通过环境变量配置AWS凭据(例如,当使用docker时),可以使用以下变量

  • AWS_ACCESS_KEY_ID:您的AWS账户的访问密钥,

  • AWS_SECRET_ACCESS_KEY:您的AWS账户的秘密密钥。

有关更多详细信息,请参阅boto3文档

进一步配置

在某些情况下,您可能想使用不在AWS上的兼容S3存储。

为此,您有以下变量

  • AWS_S3_ENDPOINT_URL:您的替代S3存储的端点URL

这允许使用minio服务器,请参阅关于端点的文档

注意:此类变量已被上游请求(及相关aws-cli)。

项目详情


下载文件

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

源代码发行版

cubicweb-s3storage-4.0.1.tar.gz (10.7 kB 查看散列值)

上传时间 源代码

构建发行版

cubicweb_s3storage-4.0.1-py3-none-any.whl (10.5 kB 查看散列值)

上传时间 Python 3

由以下机构支持

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