在django中的另一台服务器中的远程服务器和应用程序中提供媒体文件

时间:2014-05-24 20:29:07

标签: django fabric

如何提供或上传(从网站上传文件)媒体文件到远程服务器。一种方法是使用面料ssh。但是使用它我可以在静态文件的情况下将文件从一个主机传输到远程主机(如文档中所示)。但是,只要用户在网站上传文件,它就可能直接进入远程服务器

e.g。而不是文件转到

MEDIA_ROOT = '/usr/files/'

在同一台服务器上,它将转到位于远程服务器的文件夹。

1 个答案:

答案 0 :(得分:4)

您是否尝试过此解决方案:

https://github.com/aaugustin/django-resto

根据文档有三种工作模式:

  

<强> HybridStorage

     

使用此后端,django-resto将运行所有文件存储操作   首先在MEDIA_ROOT上,然后将它们复制到媒体服务器。

     

<强> AsyncStorage

     

使用此后端,django-resto将运行所有文件存储操作   在MEDIA_ROOT上,并将它们复制到媒体服务器中   背景。请参阅异步操作。

     

<强> DistributedStorage

     

使用此后端,django-resto只会将文件存储在媒体上   服务器。请参阅低并发情况。

监听传入内容的服务器可以是nginx上的轻量级实现,正如文档所建议的那样:

  

以下是lighttpd config的一个示例:

     

server.modules + =(“mod_webdav”,)   $ HTTP [“remoteip”]〜=“^ 192.168.0。[0-9] + $”{“webdav.activate =”enable“}

     

这是一个nginx配置的例子,假设服务器是   编译--with-http_dav_module:

 server {
     listen 192.168.0.10;
     location / {
         root /var/www/media;
         dav_methods PUT DELETE;
         create_full_put_path on;
         dav_access user:rw group:r all:r;
         allow 192.168.0.1/24;
         deny all;
     } 
  }

希望这能解决您的问题。