【问题标题】:How to save upload files to another server如何将上传文件保存到另一台服务器
【发布时间】:2011-03-20 15:33:07
【问题描述】:

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

【问题讨论】:

    标签: django file-upload


    【解决方案1】:

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

    你有几个选择如何做到这一点,最简单的一个是从你的“其他”机器导出一个文件系统并安装在带有 django 应用程序的机器上。

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

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

    【讨论】:

    • 或 smbfs,或 sshfs,或十几个远程文件系统中的任何一个。 OP 需要更好地解释它们的含义。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多