2012-03-02 13 views
6

Mam zamiar użyć usługi paas cloudfoundry (z VMWare) do hostowania mojej aplikacji node.js. Zauważyłem, że obsługuje on mongo i redis w warstwie usług i środowisku node.js. Jak na razie dobrze.cloudfoundry: jak używać systemu plików

Teraz muszę przechowywać moje pliki multimedialne (obrazy przesłane przez użytkowników) do systemu plików. Mam metadane zapisane w Mongo.

Szukam internetu, ale nie mam jeszcze dobrej informacji.

Odpowiedz

10

Nie można tego zrobić z następujących powodów:

  • Istnieje wiele maszyn gospodarza uruchomieniem aplikacji. Każdy ma swoje własne systemy plików. Każdy uruchomiony proces w twojej aplikacji będzie widział inny zestaw plików.
  • Hosty, na których działa określona aplikacja, mogą zmieniać się z chwili na chwilę. Rzeczywiście, będą się zmieniać za każdym razem, gdy ponownie wdrożysz swoją aplikację. Za każdym razem, gdy proces jest uruchamiany na nowym komputerze-hoście, zobaczy pusty zbiór plików. Za każdym razem, gdy proces zostanie zatrzymany na starym komputerze-hoście, wszystkie pliki zostaną trwale usunięte.

Musisz bezwzględnie rozwiązać ten problem w inny sposób.

  • Przechowuj pliki multimedialne w MongoDB GridFS.
  • Przechowuj pliki multimedialne w magazynie obiektów, takim jak Amazon S3 lub Rackspace Cloud Files.
+0

Dzięki droga. to dobre wytłumaczenie. twój drugi punkt daje mi trochę nadziei. Czy istnieje jakakolwiek dokumentacja dotycząca tego, jak używać Amazon S3 z Cloudfoundry. Jeszcze raz dziękuję za wyjaśnienia. – user644745

+2

Nie jestem obeznany z Node.js lub CloudFoundry, ale tutaj jest [przykład] (http://www.hacksparrow.com/node-js-amazon-s3-how-to-get-started.html) rozpocząć. – yfeldblum

+0

świetnie. jeszcze raz dzięki. Myślę, że tego właśnie potrzebowałem. knox. – user644745

0

System plików w większości rozwiązań chmurowych jest "efemeryczny", więc nie można używać FS. Będziesz musiał użyć takich rozwiązań, jak S3/DB do tego celu.

Powiązane problemy