2008-09-18 15 views
16

Кажется, я помню, как читал об испытательном сервере, совместимом с Amazon S3, который вы могли запускать на своем собственном сервере для модульных тестов или что-то еще. Тем не менее, я только исчерпал свое терпение, ища это как с Google, так и с AWS. Существует ли такая вещь? Если нет, я думаю, что напишу.Отдельный сервер-заглушка Amazon S3

Примечание: Я спрашиваю о Amazon S3 (система хранения), а не Amazon EC2 (облачные вычисления).

+0

несколько связанный (хотя более ориентированный на производство, чем модульное тестирование): http://serverfault.com/questions/283914/s3-compatible-object-storage-systems – Thilo 2012-03-14 07:30:33

ответ

6

Вы думаете о Park Place?

FYI, its old home page сейчас в оффлайне.

+0

Я думаю, что я, спасибо! – 2008-09-21 04:03:39

-3

Amazon использует Xen, поэтому вы можете просто запустить свой AMI в своей собственной установке Xen. Тем не менее, я просто запускаю экземпляр и запускаю тесты. Это не очень дорого, и вы, как правило, должны быть хорошо развиваться локально и нечасто тестировать его в своей системе.

+1

Я думаю, вы говорите об EC2 (облачные вычисления), в то время как мне интересно о S3 (система хранения). – 2008-09-18 10:30:03

1

Eucalyptushttp://eucalyptus.cs.ucsb.edu/

EUCALYPTUS - Эластичный Utility Computing Архитектура Связывание ваших программ к полезному Systems - это программное обеспечение инфраструктуры с открытым исходным кодом для внедрения "облачных вычислений" на кластерах. Текущий интерфейс к EUCALYPTUS совместим с интерфейсом Amazon EC2, но инфраструктура предназначена для поддержки нескольких клиентских интерфейсов .

Обратите внимание, что в соответствии с документацией Eucalypus включает в себя повторную реализацию не только интерфейса EC2, но и системы хранения S3. Этот компонент хранения называется Walrus. (http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2)

+0

Мне было интересно о S3 (система хранения), а не EC2 (облачные вычисления). – 2008-09-18 10:50:24

1

Fake S3, как представляется, уточненное перевыполнение S3, специально предназначенное для использования в тестировании.

4

Я думаю, что moto (https://github.com/spulec/moto) - идеальный инструмент для ваших unittests. Moto перебирает все обращения к S3, SQS и т. Д. И может использоваться на любом языке программирования с использованием своего веб-сервера.

Это тривиально настроить, легко и быстро.

С README 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' 
1

Мы столкнулись с проблемой тестирования нашего на основе S3 код локально, так и на самом деле реализован небольшой Java-сервер, который эмулирует объект API S3. Поскольку это может быть полезно другим, мы устанавливаем репозиторий github вместе с небольшим веб-сайтом: http://s3ninja.net - все OpenSource под лицензией MIT.

Это довольно малое и простое и может быть установлено за считанные минуты. (Будучи приложением SIRIUS, statup на умеренном сервере занимает меньше секунды).