我有一个模型,其中我有 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将减轻您的工作。
