Skip to main content
 首页 » 编程设计

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

2024年10月25日3798°冷暖

我有一个模型,其中我有 FileField 来上传一些文档。我将文件保存到我的文件系统中。我想知道是否可以使用 ftp 或其他方法将文件保存在另一台服务器中。 例如,我的 Django 应用程序服务器在主机 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/' 

请您参考如下方法:

如果您阅读文档,FileField#upload_to它只是定义一个本地文件系统路径。

你可以做的一件事是:让用户正常上传内容,然后当你的文件系统中有它时,运行一个进程将文件上传到另一个服务器,也就是你的 ftp 服务器,你可以使用 ftplib库来实现这一点。

也许使用 Django Storages将减轻您的工作。