2012-03-02 27 views
6

Tôi đang lên kế hoạch sử dụng dịch vụ đám mây paas (từ VMWare) để lưu trữ ứng dụng node.js của tôi. Tôi đã thấy rằng nó có hỗ trợ cho mongo và redis trong lớp dịch vụ và khung công tác node.js. Càng xa càng tốt.cloudfoundry: làm thế nào để sử dụng hệ thống tập tin

Bây giờ tôi cần lưu trữ tệp phương tiện của mình (hình ảnh do người dùng tải lên) vào hệ thống tệp. Tôi có siêu dữ liệu được lưu trữ trong Mongo.

Tôi đã tìm kiếm trên Internet nhưng chưa có thông tin tốt.

Trả lời

10

Bạn không thể làm điều đó vì những lý do sau đây:

  • Có nhiều máy chủ chạy ứng dụng của bạn. Mỗi người đều có hệ thống tập tin riêng của họ. Mỗi quy trình đang chạy trong ứng dụng của bạn sẽ thấy một tập hợp các tệp khác nhau.
  • Máy chủ lưu trữ mà ứng dụng cụ thể của bạn đang chạy có thể thay đổi từng khoảnh khắc. Thật vậy, chúng sẽ thay đổi mỗi khi bạn triển khai lại ứng dụng của mình. Mỗi khi một quá trình được bắt đầu trên một máy chủ mới, nó sẽ thấy một tập hợp các tập tin rỗng. Mỗi khi một quá trình được dừng lại trên một máy chủ cũ, tất cả các tệp sẽ bị xóa vĩnh viễn.

Bạn hoàn toàn phải giải quyết vấn đề này theo cách khác.

  • Lưu trữ tệp phương tiện trong MongoDB GridFS.
  • Lưu trữ các tệp phương tiện trong một cửa hàng đối tượng như Amazon S3 hoặc Tập tin đám mây Rackspace.
+0

Cảm ơn bạn. đó là một lời giải thích tốt. điểm thứ hai của bạn mang lại cho tôi một số hy vọng. Có tài liệu nào về cách tôi có thể sử dụng Amazon S3 với Cloudfoundry không. Cảm ơn một lần nữa cho lời giải thích của bạn. – user644745

+2

Tôi không quen thuộc lắm với Node.js hoặc CloudFoundry, nhưng đây là [ví dụ] (http://www.hacksparrow.com/node-js-amazon-s3-how-to-get-started.html) để bắt đầu. – yfeldblum

+0

tuyệt vời. một lần nữa cám ơn. Tôi nghĩ rằng đây là những gì tôi cần. knox. – user644745

0

Hệ thống tệp trong hầu hết các giải pháp đám mây là "không lâu", vì vậy bạn không thể sử dụng FS. Bạn sẽ phải sử dụng các giải pháp như S3/DB cho mục đích đó

Các vấn đề liên quan