如何将上传文件保存到另一台服务器

时间:2011-03-20 15:33:08

标签: django file-upload

我目前正在使用django。现在我需要将用户上传的文件保存到另一台服务器,该服务器不是为django应用程序提供服务的服务器。该文件将保存到文件系统而不是数据库。有人能告诉我怎么做吗?

2 个答案:

答案 0 :(得分:3)

默认Django行为是将文件保存在文件系统上,而不是数据库本身。

您有多种选择如何执行此操作,最简单的方法是从您的“其他”计算机导出文件系统,并使用django应用程序安装在计算机上。

对于文件系统导出,您可以使用NFS,MogileFS或GlusterFS(我正在使用)或更多:)。如果您不需要实时保存和服务,也可以选择简单的rsync。

第二种选择是利用现有的django机制StogareAPI。您可以使用already available种不同的存储备份,可能对您有所帮助(例如ftp)。

答案 1 :(得分:0)

这不会开箱即用,你需要一个机制(编写一些代码)来排队通过django应用程序上传的文件,然后使用中间件(可以在python中)将文件从队列传输到你的文件服务器。所以流程基本上是这样的:

  1. 通过django app接受上传的文件。
  2. django app。将文件信息(其临时路径和名称)写入队列
  3. 中间件应用程序读取队列中的下一个文件。
  4. 中间件应用程序使用一些传输协议(sftp,scp,ftp,http等...)将文件复制到文件服务器。
  5. 中间件应用程序删除托管django app的文件,因此django服务器没有该文件的副本。