我基本上有一个网站的网站服务器和另一个简单的存储文件。文件服务器通过挂载它的一个目录连接到主服务器。这个网站运行Django,所以我主要处理python。不管怎样,我似乎遇到了一些问题,文件被报告为不存在,即使它们实际上在那里。在
我打电话的时候filepath = '/path/to/file/on/nfs/share'
exists = os.path.exists(filepath)
exists是错误的,即使文件确实存在,我知道它确实存在,因为我有时间戳打印到日志文件中,它精确地显示了它的创建时间。我不知道是什么问题,但我知道os.path.exists说On some platforms, this function may return False if permission is not granted to execute os.stat() on the requested file, even if the path physically exists.
我知道组和服务器上共享的数据也不相同。可能是旧缓存之类的吗?在
我的安装是通过fstab自动完成的。在
^{pr2}$
编辑:
所以,我想更多的信息/细节。我正在运行一个Python子进程,它在远程目录中生成一个文件。当发出请求时,它启动子进程并返回文件的预期位置。在
在前端,有一个url被ping,在那里调用os.path.exists(),然后通过ajax加载资源。在
可疑的问题是,有时这个pinger会在文件实际可用后的几秒钟内报告该文件不可用。这也是我认为可能是一个过时缓存问题的原因。在
所有文件和其中的目录都是所有者/组www数据,以及由django实例化的任何子进程。而且这个问题似乎不完全可重复。有时它会工作得很快,而另一些则需要比预期长几秒钟的时间