Amazon S3 Standalone-Server-Stub
-
01-07-2019 - |
Frage
Ich scheine über einen Amazon S3-kompatiblen Test-Server wieder zu lesen, die Sie auf Ihrem eigenen Server für Unit-Tests oder was auch immer laufen konnten. Allerdings habe ich erschöpft nur meine Geduld mit Google und AWS für diese suchen. Gibt es so etwas gibt es? Wenn nicht, ich glaube, ich schreibe werde.
. Hinweis: Ich bitte über Amazon S3 (das Speichersystem), anstatt Amazon EC2 (Cloud-Computing)
Lösung
Denken Sie an Park Place ?
FYI, seine alte Homepage ist offline.
Andere Tipps
Ich denke, moto ( https://github.com/spulec/moto ) ist das perfekte Werkzeug, für Ihre Unittests. Moto verhöhnt alle Zugriffe auf S3, SQS, usw. und können in einer beliebigen Programmiersprache mit ihrem Web-Server verwendet werden.
Es ist trivial zu installieren, leicht und schnell.
Von moto README:
Stellen Sie sich vor Sie haben den folgenden Code ein, den Sie testen wollen:
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)
Nehmen Sie eine Minute zu denken, wie Sie in der Vergangenheit, dass getestet haben würden. Jetzt sehen Sie, wie Sie es mit Moto testen können:
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 hat Github bewegt: http://github.com/technoweenie/parkplace
Eucalyptus http://eucalyptus.cs.ucsb.edu/
EUCALYPTUS - Elastic Utility Computing Architektur für die Anbindung Ihrer Programme Zu nützlichen Systems - ist ein Open-Source Software-Infrastruktur für Umsetzung „Cloud Computing“ auf Cluster. Die aktuelle Schnittstelle zu EUCALYPTUS ist kompatibel mit Amazon EC2-Schnittstelle, aber die Infrastruktur unterstützen soll multiple clientseitige Schnittstellen.
Beachten Sie, dass nach der Dokumentation, Eucalypus einer Neuimplementierung beinhaltet nicht nur die EC2-Schnittstelle, sondern auch System der S3 Lagerung. Das Speicherkomponente wird Walrus genannt. ( http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2 )
Gefälschte S3 erscheint eine up-to-date Neuimplementierung von S3 zu sein, die speziell für Verwendung in Tests.
Wir liefen in das Problem der Prüfung unsere S3 basierten Code lokal und implementiert tatsächlich einen kleinen Java-Servers, der den S3-Objekt API emuliert. Wie es für andere nützlich sein könnte, wir Setup ein GitHub Repo zusammen mit einer kleinen Website: http://s3ninja.net - alle Open Source unter der MIT-Lizenz.
Es ist ziemlich klein und einfach und kann Setup in Minuten. (Als SIRIUS basierte Anwendung, statup auf einem moderaten Server dauert weniger als eine Sekunde).
Amazon nutzt Xen, so können Sie wahrscheinlich nur Ihre AMI in Ihrer eigenen Xen-Installation ausführen. Ich würde nur eine Instanz anwerfen und die Tests dort laufen, though. Es kostet nicht viel, und Sie sollen in der Regel in Ordnung sein mit lokal entwickelt und testet es selten auf ihrem System.