Amazon S3 автономный сервер-заглушка - PullRequest
16 голосов
/ 18 сентября 2008

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

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

Ответы [ 7 ]

6 голосов
/ 19 сентября 2008

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

К вашему сведению, его старая домашняя страница сейчас недоступна.

4 голосов
/ 18 мая 2013

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

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

из 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'
2 голосов
/ 13 февраля 2009

Park Place переехал на github: http://github.com/technoweenie/parkplace

1 голос
/ 02 сентября 2013

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

Он довольно маленький и простой, и его можно настроить за считанные минуты. (Будучи приложением на основе SIRIUS , настройка на сервере средней мощности занимает менее секунды).

1 голос
/ 19 апреля 2012

Поддельный S3 , по-видимому, является новейшей реализацией S3, специально разработанной для использования в тестировании.

1 голос
/ 18 сентября 2008

Эвкалипт http://eucalyptus.cs.ucsb.edu/

EUCALYPTUS - Elastic Utility Computing Архитектура для связывания ваших программ Для полезных систем - с открытым исходным кодом программная инфраструктура для внедряя «облачные вычисления» на кластеры. Текущий интерфейс к EUCALYPTUS совместим с Amazon Интерфейс EC2, но инфраструктура предназначен для поддержки нескольких клиентские интерфейсы.

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

0 голосов
/ 18 сентября 2008

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

...