我的生产箱上有django和django的管理员设置。这意味着所有文件上传都存储在生产框中,所有媒体都存储在那里。
我现在有一个单独的文件服务器(不同的盒子,ip)。我想在那里上传我的文件。我想到的这些方法有哪些优点和缺点,你能提出哪些“更好”的方法?
rsync
。upload_to
路径框信息:两台服务器都运行debian。
编辑:来自#django的普罗米修斯建议http://docs.djangoproject.com/en/dev/howto/custom-file-storage/
答案 0 :(得分:2)
我使用Fabric。特别感兴趣的是 fabric.contrib.project.rsync_project() 。
解释 -
Fabric是一个Python库和 用于简化的命令行工具 使用SSH进行应用程序部署 或系统管理任务。
首先使用fabric.contrib.project.upload_project()
上传整个项目目录。从那时起,开始使用fabric.contrib.project.rsync_project
。将项目与本地版本同步。另外特别感兴趣的是,它使用unix rsync
下面的&使用安全scp
传输.tar.gz
数据。
我想这可以满足您的需求。可能不需要设置永久性安装等。
答案 1 :(得分:1)
如果您的静态媒体源自您的开发过程,那么Fabric就是您的选择。它可以自动部署和复制任何内容 - 数据,应用程序文件,甚至静态数据库转储 - 从任何地方到任何地方。
如果您的静态媒体源自您的应用程序服务器的操作 - 生成的PDF和图像,来自您的用户的上传,已编译的二进制文件(我有一个想要它的客户,一个Django应用程序将接受原始x86程序集并返回一个编译和链接二进制文件 - 然后你想使用Django Storages,一个抽象任何ImageField或FileField(或任何具有类似Python文件的界面)的内容实际存储的应用程序。它支持将它们存储在数据库,Amazon S3,FTP和其他一些数据库中。