質問

単体テストなどのために独自のサーバーで実行できる Amazon S3 互換のテストサーバーについて読んだことを思い出したようです。しかし、私は Google と AWS の両方でこれを探すのに忍耐力を使い果たしました。そんなものは存在するのでしょうか?そうでなかったら、書こうと思います。

注記:Amazon EC2 (クラウド コンピューティング) ではなく、Amazon S3 (ストレージ システム) について質問しています。

役に立ちましたか?

解決

考えていますか パークプレイス?

参考までに、その 古いホームページ 現在オフラインです。

他のヒント

モトだと思います(https://github.com/splec/moto) は単体テストに最適なツールです。Moto は、S3、SQS などへのすべてのアクセスを模擬します。Web サーバーを使用して任意のプログラミング言語で使用できます。

セットアップは簡単で、軽量で高速です。

moto の README より:

テストしたい次のコードがあると想像してください。

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/

ユーカリ - プログラムを有用なシステムにリンクするための弾性ユーティリティコンピューティングアーキテクチャ - クラスターに「クラウドコンピューティング」を実装するためのオープンソースソフトウェアインフラストラクチャです。ユーカリへの現在のインターフェイスは、AmazonのEC2インターフェイスと互換性がありますが、インフラストラクチャは複数のクライアント側インターフェイスをサポートするように設計されています。

ドキュメントによると、Eucalypus には EC2 インターフェイスだけでなく S3 ストレージ システムの再実装も含まれていることに注意してください。そのストレージ コンポーネントは Walrus と呼ばれます。(http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2)

偽S3 S3 の最新の再実装であり、特にテストでの使用を目的として設計されているようです。

S3 ベースのコードをローカルでテストするという問題に遭遇し、実際に S3 オブジェクト API をエミュレートする小さな Java サーバーを実装しました。他の人にとっても役立つかもしれないので、小さな Web サイトとともに github リポジトリをセットアップします。 http://s3ninja.net - すべては MIT ライセンスに基づくオープンソースです。

非常に小さくてシンプルで、数分でセットアップできます。( シリウス ベースのアプリケーションの場合、中程度のサーバーでの起動には 1 秒もかかりません)。

Amazon は Xen を使用しているため、おそらく独自の Xen インストールで AMI を実行することができます。ただし、インスタンスを起動してそこでテストを実行するだけです。費用はそれほどかからず、通常はローカルで開発し、システム上で頻繁にテストすることは問題ありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top