2010-07-20 28 views
9

Así que me gustaría intentar usar Heroku para ser mi servidor, sin embargo heroku no permite escribir en su sistema de archivos. En cambio, necesito usar la base de datos y algo así como Amazon S3 para el almacenamiento de cosas como imágenes cargadas.Sin conexión Amazon S3

El problema es que a menudo no tengo acceso a Internet cuando desarrollo. O muy mal acceso a internet. Entonces desarrollar para Amazon S3 es algo poco práctico. ¿Hay una versión fuera de línea para usar para que mi máquina local pueda actuar como la nube S3, y cuando estoy en entornos de prueba/producción, puedo usar el S3 real?

+0

¿Es posible montar un sistema de ficheros, o el tráfico de red es la única cosa que está disponible para usted? –

+0

Puedo montar todo lo que quiero (ejecutando linux) pero es posible que no tenga acceso a la red. Así que, al final, quiero usar las API para desarrollar, pero hacerlo completamente fuera de línea. –

+0

Curiosamente, esta pregunta de 2010 se cerró en octubre de 2012, mientras que [esta de febrero de 2012, que la duplica] (http://stackoverflow.com/q/9210162/759866) aún está abierta. – Benjamin

Respuesta

1

Mi recomendación es probar s3fs con rsync. Así es como funcionaría:

  1. Monte su unidad s3 en/mnt/sdaX/en su máquina de producción y/mnt/sdaY/en su máquina local.
  2. Cree un sistema de archivos en/mnt/sdaX/en su máquina local.

Realice los cambios en su máquina local según sea necesario. Cuando corresponda, rync/mnt/sdaX/a/mnt/sdaY/en su casilla local.

Me doy cuenta de que esto es complicado, pero no estoy seguro de que exista realmente otra forma de hacerlo manteniendo la misma configuración en ambos lugares. Normalmente, diría que solo debe escribir localmente en la unidad s3fs con el caché local habilitado, pero no estoy seguro de lo que sucederá cuando regrese en línea (estoy bastante seguro de que no se sincroniza, pero he seguido adelante y asked s3fs developers).

mejor,

Zach

desarrollador, LongTail vídeo

+1

Creo que es más la interfaz necesaria para el desarrollo que el almacenamiento sí mismo. Así que la sincronización de los sistemas de archivos no ayudará a desarrollar contra la API S3 cuando está fuera de línea. –

+0

Necesito desarrollar fuera de línea. Quiero que mi producción se ejecute en línea.El punto es que quiero desarrollar/probar las mismas API que usará la producción, excepto que una está usando S3, una está usando local. Si estuviese desarrollando en un dispositivo accesible S3 las 24 horas, los 7 días de la semana, no me importaría esta preocupación, así que no tengo nada que ver con solo sincronizar. –

+0

En este caso, el sistema de archivos * es * su interfaz. En lugar de utilizar una API específica de S3, puede usar la API normal del sistema de archivos y s3fs abstraerá el resto. –

1

Tenga una mirada en:

Sin embargo, podría ser algo de trabajo ponerlos en funcionamiento. Finalmente, quería escribir mi propio clon usando node.js, pero se ha alejado mucho de la API S3 original, por lo que ya no te será de gran ayuda.

+0

No me preocupa la API S3 tanto como me preocupa tener un marco que use S3 en producción y me permita hacer algo fuera de línea mientras estoy en desarrollo. Gracias pensé que iba a investigar esto. Un enlace a su proyecto? –

9

Pregunta anterior, pero quería publicar esto, existe una herramienta "Fake S3" que parece estar diseñada para hacer exactamente esto. A punto de darle un giro.

https://github.com/jubos/fake-s3