我似乎记得读过有关 Amazon S3 兼容测试服务器的文章,您可以在自己的服务器上运行该服务器以进行单元测试或其他任何操作。然而,我已经耗尽了我在 Google 和 AWS 上寻找这个的耐心。这样的事情存在吗?如果没有的话,我想我会写一篇。

笔记:我问的是 Amazon S3(存储系统)而不是 Amazon EC2(云计算)。

有帮助吗?

解决方案

你是否在想 公园广场?

仅供参考,其 旧主页 现在离线。

其他提示

我认为摩托(https://github.com/spulec/moto)是单元测试的完美工具。Moto 模拟对 S3、SQS 等的所有访问。并且可以使用他们的网络服务器以任何编程语言使用。

它的设置很简单,重量轻且快速。

来自 moto 的自述文件:

想象一下您想要测试以下代码:

import boto
from boto.s3.key import Key

class MyModel(object):
    def __init__(self, name, value):
        self.name = name
        self.value = value

    def save(self):
        conn = boto.connect_s3()
        bucket = conn.get_bucket('mybucket')
        k = Key(bucket)
        k.key = self.name
        k.set_contents_from_string(self.value)

花点时间想想过去你会如何测试它。现在看看如何使用 Moto 进行测试:

import boto
from moto import mock_s3
from mymodule import MyModel

@mock_s3
def test_my_model_save():
    model_instance = MyModel('steve', 'is awesome')
    model_instance.save()

    conn = boto.connect_s3()
    assert conn.get_bucket('mybucket').get_key('steve') == 'is awesome'

Park Place 已移至 github:http://github.com/technoweenie/parkplace

桉树 http://eucalyptus.cs.ucsb.edu/

Eucalyptus-用于将程序链接到有用系统的弹性实用程序计算体系结构 - 是用于在群集上实现“云计算”的开源软件基础架构。桉树的当前接口与亚马逊的EC2接口兼容,但基础结构旨在支持多个客户端接口。

请注意,根据文档,Eucalypus 不仅重新实现了 EC2 接口,还重新实现了 S3 存储系统。该存储组件称为 Walrus。(http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2)

假S3 似乎是 S3 的最新重新实现,专门设计用于测试。

我们遇到了在本地测试基于 S3 的代码的问题,并实际实现了一个小型 Java 服务器,该服务器模拟 S3 对象 API。因为它可能对其他人有用,所以我们设置了一个 github 存储库和一个小网站: http://s3ninja.net - MIT 许可下的所有开源代码。

它非常小且简单,可以在几分钟内完成设置。(成为一个 天狼星 基于应用程序,中等服务器上的启动时间不到一秒)。

Amazon 使用 Xen,因此您可以在自己的 Xen 安装中运行 AMI。不过,我只是启动一个实例并在那里运行测试。它的成本并不高,而且您通常应该可以在本地进行开发,并且很少在他们的系统上进行测试。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top