将文件存储在远程服务器Django中

时间:2015-01-13 21:49:35

标签: python django django-models django-storage

我有一个模型,我有FileField上传一些文件。我将文件保存到我的文件系统中。我想知道是否可以使用ftp或其他方法将文件保存在另一台服务器中。 例如,我的django app服务器在主机192.168.0.1中运行,我想将文件存储在IP 192.168.0.2的主机中。

我可以通过ftp访问我想要存储文件的服务器而没有任何问题。

型号:

class Documentacion(models.Model):
      id_doc = models.AutoField(primary_key=True)
      id_proceso = models.ForeignKey(Proceso,db_column='id',verbose_name='Proceso')
      tipo_docu = odels.CharField(max_length=100,null=False,blank=False,verbose_name='Tipo Doc.')
      fecha = models.DateField(auto_now = True)
      autor = models.CharField(max_length=50,blank=False,null=False)
      descripcion = models.CharField(max_length=250,blank=True,null=True)
      documento = models.FileField(upload_to='docs/')

我的媒体设置:

MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'

1 个答案:

答案 0 :(得分:2)

如果您浏览文档,FileField#upload_to只能定义本地文件系统路径。

您可以做的一件事是:让用户正常上传内容,然后当您在文件系统中运行内容时,运行将文件上传到另一台服务器(即您的ftp服务器)的过程,您可以使用ftplib图书馆来实现这个目标。

也许使用Django Storages可以简化您的工作。