2012-03-02 4 views
6

Я планирую использовать службу облачных сервисов paas (из VMWare) для размещения моего приложения node.js. Я видел, что он поддерживает mongo и redis в уровне сервиса и framework.js. Все идет нормально.cloudfoundry: как использовать файловую систему

Теперь мне нужно сохранить медиафайлы (изображения, загруженные пользователями) в файловую систему. У меня есть метаданные, хранящиеся в Mongo.

Я искал интернет, но еще не получил хорошую информацию.

ответ

10

Вы не можете сделать это по следующим причинам:

  • Есть несколько машин хоста работает приложение. У каждого из них свои файловые системы. В каждом запущенном процессе в вашем приложении будет отображаться другой набор файлов.
  • Хост-машины, на которых работает ваше конкретное приложение, могут изменять момент времени. В самом деле, они будут меняться при каждом повторном развертывании приложения. Каждый раз, когда процесс запускается на новом хост-компьютере, он видит пустой набор файлов. Каждый раз, когда процесс останавливается на старой машине, все файлы будут удалены навсегда.

Вы абсолютно должны решить эту проблему по-другому.

  • Храните медиафайлы в MongoDB GridFS.
  • Храните медиафайлы в хранилище объектов, таких как Amazon S3 или Rackspace Cloud Files.
+0

Спасибо дорогой. это хорошее объяснение. ваш второй момент дает мне некоторую надежду. Есть ли какая-либо документация о том, как я могу использовать Amazon S3 с Cloudfoundry. Еще раз спасибо за ваше объяснение. – user644745

+2

Я не очень хорошо знаком с Node.js или CloudFoundry, но вот [пример] (http://www.hacksparrow.com/node-js-amazon-s3-how-to-get-started.html) для начала. – yfeldblum

+0

отлично. снова спасибо. Я думаю, что это то, что мне нужно. Нокс. – user644745

0

Файловая система в большинстве облачных решений является «эфемерной», поэтому вы не можете использовать FS. Вам необходимо будет использовать такие решения, как S3/DB для таких целей.