2008-09-18 13 views
16

Me parece recordar haber leído acerca de un servidor de prueba compatible con Amazon S3 que podría ejecutar en su propio servidor para pruebas unitarias o lo que sea. Sin embargo, acabo de agotar mi paciencia buscando esto con Google y AWS. ¿Existe tal cosa? Si no, creo que escribiré uno.Servidor de stre standalone Amazon S3

Nota: Pregunto acerca de Amazon S3 (el sistema de almacenamiento) en lugar de Amazon EC2 (computación en la nube).

+0

algo relacionado (aunque más orientado al uso de producción que las pruebas unitarias): http://serverfault.com/questions/283914/s3-compatible-object-storage-systems – Thilo

Respuesta

6

¿Estás pensando en comprar Park Place?

FYI, old home page no está en línea ahora.

+0

¡Creo que sí, gracias! –

+0

Park Place es una bolsa de daño en este momento –

-3

Amazon utiliza Xen, por lo que probablemente solo pueda ejecutar su AMI en su propia instalación de Xen. Sin embargo, me gustaría iniciar una instancia y ejecutar las pruebas allí. No cuesta mucho y, por lo general, está bien desarrollarlo localmente y probarlo con poca frecuencia en su sistema.

+1

Creo que estás hablando de EC2 (computación en la nube)) mientras me pregunto sobre S3 (el sistema de almacenamiento). –

1

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

Eucalipto - elástico Utilidad de Computación Arquitectura para la vinculación de sus programas Para sistemas útiles - es una infraestructura de software de código abierto para implementación de "cloud computing" en racimos. La interfaz actual a EUCALYPTUS es compatible con la interfaz EC2 de Amazon, pero la infraestructura está diseñada para admitir múltiples interfaces del lado del cliente .

Tenga en cuenta que, de acuerdo con la documentación, Eucalyptus incluye una reimplementación no sólo de la interfaz EC2, sino también el sistema de almacenamiento S3. Ese componente de almacenamiento se llama Walrus. (http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2)

+0

Me preguntaba acerca de S3 (el sistema de almacenamiento) en lugar de EC2 (computación en la nube). –

1

Fake S3 parece haber una reimplementación de puesta al día de S3, diseñado específicamente para su uso en pruebas.

4

Creo que moto (https://github.com/spulec/moto) es la herramienta perfecta para sus unittests. Moto se burla de todos los accesos a S3, SQS, etc. y puede usarse en cualquier lenguaje de programación usando su servidor web.

Es trivial de configurar, ligero y rápido.

De README de moto:

Imagine que tiene el siguiente código que desea probar:

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) 

Tome un minuto para pensar en lo que habría probado que en el pasado. Ahora veamos cómo se puede probar con 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

Nos encontramos con el problema de poner a prueba nuestro código basado S3 a nivel local y de hecho implementó un pequeño servidor Java, que emula la API objeto S3. Como podría ser útil para otros, configuramos un repositorio github junto con un sitio web pequeño: http://s3ninja.net - todos OpenSource bajo la licencia MIT.

Es bastante pequeño y simple, y se puede configurar en minutos. (Siendo una aplicación basada en SIRIUS, statup en un servidor moderado lleva menos de un segundo).