Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何将上载文件保存到另一台服务器_Django_File Upload - Fatal编程技术网

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

Django 如何将上载文件保存到另一台服务器,django,file-upload,Django,File Upload,我目前正在使用django。现在我需要保存一个由用户上传到另一台服务器的文件,该服务器不是为django应用程序服务的服务器。文件将保存到文件系统,而不是数据库。有人能告诉我怎么做吗?这不是开箱即用的,您需要有一种机制(编写一些代码)将通过django应用程序上载的文件排队,然后使用中间件(可以是python)将文件从队列传输到您的文件服务器。所以流基本上是这样的: 通过django应用程序接受上传的文件 django应用程序。将文件信息(其临时路径和名称)写入队列 中间件应用程序读取队列中的下

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

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

  • 通过django应用程序接受上传的文件
  • django应用程序。将文件信息(其临时路径和名称)写入队列
  • 中间件应用程序读取队列中的下一个文件
  • 中间件应用程序使用一些传输协议(sftp、scp、ftp、http等)将文件复制到文件服务器
  • 中间件应用程序从django应用程序所在的位置删除该文件,以便django服务器没有该文件的副本
    默认的Django行为是将文件保存在文件系统上,而不是数据库本身)

    您有几种方法可以实现这一点,最简单的方法是从“其他”机器导出一个文件系统,并将其安装在带有django应用程序的机器上

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


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

    或smbfs、sshfs或十几个远程文件系统中的任何一个。OP需要更好地解释它们的意思。