gpt4 book ai didi

docker - 在 docker 容器之间连接到 scality/s3 服务器

转载 作者:行者123 更新时间:2023-12-02 18:15:11 27 4
gpt4 key购买 nike

我们正在使用基于 python 的解决方案,该解决方案将从 S3 加载和存储文件。对于开发和本地测试,我们使用带有 docker 和 docker-compose 的 vagrant 环境。我们有两个 docker-compose 定义 - 一个用于辅助后端服务(mongo、restheart、redis 和 s3),另一个包含使用后端服务的基于 python 的 REST API 公开解决方案。

当我们的“前端”docker-compose 组与 restheart 交互时,这工作正常(在 http 调用中使用 restheart 容器的名称作为服务器主机)。当我们对 scality/s3 服务器做同样的事情时,这是行不通的。

有趣的是,我们已经创建了一个测试套件,用于使用在主机(windows10)上运行的 python 测试套件中的 scality/s3 服务器,通过 vagrant 到 scality/s3 服务器的 docker 容器中的转发端口docker-compose 组。我们使用了 endpoint_url localhost,它运行良好。

在错误情况下(当前端 Web 服务想要写入 S3 时)“前端”服务总是响应:botocore.exceptions.ClientError:调用 CreateBucket 操作时发生错误(InvalidURI):无法解析指定的 URI。检查您的 restEndpoints 配置。并且 s3server 总是以 http 400 和消息响应:

s3 服务器 | {"name":"S3","clientIP":"::ffff:172.20.0.7","clientPort":49404,"httpMethod":"PUT","httpURL":"/raw-data","time ":1521306054614,"req_id":"e385aae3c04d99fc824d","level":"info","message":"received request","hostname":"cdc8a2f93d2f","pid":83}s3 服务器 | {"name":"S3","bytesSent":233,"clientIP":"::ffff:172.20.0.7","clientPort":49404,"httpMethod":"PUT","httpURL":"/raw -data","httpCode":400,"time":1521306054639,"req_id":"e385aae3c04d99fc824d","elapsed_ms":25.907569,"level":"info","message":"响应错误 XML","hostname":"cdc8a2f93d2f","pid":83}

我们用这个 boto3 代码调用 scality:

    s3 = boto3.resource('s3',
aws_access_key_id='accessKey1',
aws_secret_access_key='verySecretKey1',
endpoint_url='http://s3server:8000')
s3_client = boto3.client('s3',
aws_access_key_id='accessKey1',
aws_secret_access_key='verySecretKey1',
endpoint_url='http://s3server:8000')

s3.create_bucket(Bucket='raw-data') # here the exception comes
bucket = self.s3.Bucket('raw-data')

最佳答案

这个问题很常见。在你的config.json文件,你挂载在你的 Docker 容器中,我假设,有一个 restEndpoints 部分,你必须在其中将域名与默认区域相关联。这意味着您的前端域名应该在那里指定,匹配默认区域。请注意,该默认区域不会阻止您使用其他区域:如果您不另行指定,它就是创建存储桶的位置。

以后,我建议您直接在 Zenko Forum 上打开一个问题,因为这是大多数社区和核心开发人员所在的地方。

干杯,

劳拉

关于docker - 在 docker 容器之间连接到 scality/s3 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49339557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com