【问题标题】:How to connect boto with fakes3如何将boto与fakes3连接起来
【发布时间】:2014-07-01 21:53:40
【问题描述】:

我想知道如何将 boto 连接到 fakes3 以进行集成测试。

我目前正在像这样运行 fakes3:

fakes3 -r fakes3 -p 4567

并尝试连接到 s3 并在 ipython 中创建一个存储桶,如下所示:

s3conn = S3Connection(access_key_id, secret_access_key, port=4567, host='localhost')
bucket = s3conn.create_bucket('test')

这只是挂起。谁能给我一个从 boto 连接到 fakes3 的例子吗?

【问题讨论】:

    标签: amazon-s3 integration-testing boto


    【解决方案1】:

    根据 fakes3 测试中的这个 (https://github.com/jubos/fake-s3/blob/master/test/botocmd.py),您可能想要这样的东西:

    from boto.s3.connection import S3Connection, OrdinaryCallingFormat
    
    s3conn = S3Connection(access_key_id, secret_access_key, is_secure=False, port=4567, host='localhost', calling_format=OrdinaryCallingFormat())
    

    【讨论】:

    • 其实你有几个错字,calling_format一定要这样调用s3conn = S3Connection(access_key_id, secret_access_key, is_secure=False, port=4567, host='localhost', calling_format=OrdinaryCallingFormat())
    【解决方案2】:

    这发生在我的 Mac 上,我刚刚意识到 fakes3 没有创建文件的权限。所以我跑了 sudo fakes3 -r /mnt/fakes3_root -p 4567 & 和 create_bucket 和 get_all_buckets 工作正常

    【讨论】:

    • 您为fakes3使用的访问密钥和秘密
    • FakeS3 不在乎你给它什么凭据。但是我注意到,当您不指定任何凭据时,Boto 将尝试从 Amazon 实例元数据服务获取凭据并在 EC2 之外失败。指定虚假凭据是防止这种情况的一种方法。
    猜你喜欢
    • 2016-10-02
    • 2018-04-06
    • 2021-02-23
    • 2020-05-12
    • 2019-07-16
    • 2010-11-17
    • 2021-09-15
    • 2020-08-18
    相关资源
    最近更新 更多