2011-03-20 162 views
2

我目前使用的是django。現在我需要將用戶上傳的文件保存到另一臺服務器上,該服務器不是服務於django應用程序的服務器。該文件將被保存到文件系統而不是數據庫。有人可以告訴我如何做到這一點?如何將上傳文件保存到另一臺服務器

回答

3

Django缺省行爲是保存在文件系統中,而不是數據庫本身)的文件。

您有幾種選擇如何做到這一點,最簡單的是有一個文件系統從你的「其他」機導出並安裝與Django應用程序的機器上。

對於文件系統導出,您可以使用NFS,MogileFS或GlusterFS(我正在使用)或更多:)。如果你不需要實時保存&服務,簡單的rsync也可能是一個選項。

第二個選擇是利用現有的Django機制StogareAPI。有already available不同的存儲支持你可以使用,可能對你有幫助(例如ftp)。

+0

或smbfs或sshfs或任何十幾個遠程文件系統。 OP需要解釋他們的意思更好一點。 – Spacedman 2011-03-20 18:58:41

0

這不會開箱即用,您需要有一個機制(編寫一些代碼)來排列通過django應用程序上傳的文件,然後使用中間件(可以在python中)將文件從隊列傳輸到你的文件服務器。所以流量基本上是這樣的:

  1. 接受通過django應用程序上傳的文件。
  2. django app。將文件信息(其臨時路徑和名稱)寫入隊列
  3. 中間件應用程序讀取隊列中的下一個文件。
  4. 中間件應用程序使用一些傳輸協議(sftp,scp,ftp,http等)將文件複製到文件服務器。
  5. 中間件應用程序從django應用程序所在的位置刪除該文件,因此django服務器沒有該文件的副本。
相關問題