18

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

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

4

7 回答 7

7

你在想公园广场吗?

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

于 2008-09-18T22:10:02.990 回答
4

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

设置简单,轻巧且快速。

来自 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'
于 2013-05-18T17:47:37.677 回答
2

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

于 2009-02-13T19:13:41.660 回答
1

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

EUCALYPTUS - 用于将您的程序链接到有用系统的弹性实用计算架构 - 是一种用于在集群上实现“云计算”的开源软件基础架构。EUCALYPTUS 的当前接口与 Amazon 的 EC2 接口兼容,但基础设施旨在支持多个客户端接口。

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

于 2008-09-18T10:45:06.960 回答
1

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

于 2012-04-18T20:06:38.157 回答
1

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

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

于 2013-09-02T11:41:57.473 回答
-3

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

于 2008-09-18T10:27:33.553 回答