【发布时间】:2017-02-26 13:24:22
【问题描述】:
我在 Debian 服务器上有一个 Django 应用程序,我当前磁盘上的当前 site_media 目录已满。所以我想在第二个磁盘上上传文件。服务器上的路径是 /disk :
obj = form.save(commit=False)
obj.user_id = self.request.user.pk
obj.save()
initial_path = obj.file.path
print(initial_path)
new = settings.MEDIA_ROOT_NEW + obj.file.name
print(new)
os.rename(initial_path,new)
shutil.move(initial_path, new)
在我的 settings.py 中有:
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'site_media/')
MEDIA_ROOT_NEW = '/disk/site_media/'
我仍然得到错误: django [Errno 18] 跨设备链接无效
有什么想法吗?
【问题讨论】:
-
回过头来看这一点,简单地迁移到新位置而不是让您的应用程序将数据保存在原始位置然后复制它会更有意义。你能不把
MEDIA_ROOT改成/disk/site_media/吗? -
你看,我们有两个磁盘。首先 (MEDIA_ROOT) 已满。我们必须这样。我必须设法在 MEDIA_ROOT_NEW 路径的第二个磁盘上上传文件,并从该磁盘读取。有什么想法吗??
-
我认为提出合适的解决方案需要的不仅仅是关于 SO cmets 的对话。在不知道为什么必须保持
MEDIA_ROOT原样的确切原因的情况下,我仍然建议“获取更大的磁盘,从MEDIA_ROOT迁移当前数据,然后将您的应用程序指向新磁盘。”越简单越好 - 我想不出理由来证明必须协调对两个磁盘的读取和写入。 -
我和你在一起!但我们谈论的是我工作的公司。这就是我努力寻找解决方案的原因。
标签: python django server debian-based