Ruby on rails XSendFile可以';t stat文件是否在windows samba共享上?
当文件位于samba挂载的目录中时,我很难让apache通过XSendFile提供服务 我有一个RubyonRails应用程序正在慢慢取代ASP.NET应用程序,它运行在运行apache2和passenger的linux服务器上。运行ASP.NET代码的Windows计算机正在共享我通过Samba装载的上载目录 每当我尝试使用X_SENDFILE头发送文件时,我会在apache服务器日志中看到: 部分结果有效,但处理不完整:xsendfile:无法统计文件:/path/to/file 但是当我手动输入:stat/path/to/file时,它会给我文件统计信息。我知道档案在那里。(我在用户apache运行时登录后也尝试过)据我所知,文件权限是正确的Ruby on rails XSendFile可以';t stat文件是否在windows samba共享上?,ruby-on-rails,ruby,apache,samba,smb,Ruby On Rails,Ruby,Apache,Samba,Smb,当文件位于samba挂载的目录中时,我很难让apache通过XSendFile提供服务 我有一个RubyonRails应用程序正在慢慢取代ASP.NET应用程序,它运行在运行apache2和passenger的linux服务器上。运行ASP.NET代码的Windows计算机正在共享我通过Samba装载的上载目录 每当我尝试使用X_SENDFILE头发送文件时,我会在apache服务器日志中看到: 部分结果有效,但处理不完整:xsendfile:无法统计文件:/path/to/file 但是当我手
apache的XSendFile和SMB共享上的文件是否存在某种问题?可能是文件/权限问题(作为用户x,您无法访问y)。你可以试着在上面做一个chmoda+rwx…我找到了它。有时它只是需要一个人指出显而易见的事情 我已在/mnt/winbox上载上装载了samba共享 它是用:dir_mode=0777,file_mode=0777(用于测试)装载的,所以我假设权限是完全开放的。但是,在检查了/mnt/winbox uploads目录上的权限之后,我看到它们是:drwxrwx---。这基本上意味着,如果我不是所有者或组,我甚至不能进入目录
这一问题尚未解决。请参阅下面的注意事项Samba装载实际上没有在真正类似unix的文件系统上获得的相同权限。请记住,samba主要设计用于Unix系统->windows客户端,而不是windows服务器->Unix客户端。chmod等命令工作得不太好 接下来的问题是ruby非常不信任文件系统。如果它对访问一个文件感到有点不舒服,它就会放弃。我有一些rails应用程序从使用acl而非unix文件权限的nfs共享运行,除非我返回并在tmp、日志等上提供设置用户或组,否则它们不会运行,因为ruby甚至不会尝试查看实际访问文件,如果它看不到用户/组权限,即使它会成功,因为存在acl
要获得答案,请尝试在运行rails应用程序的文件框上进行克隆。Ok,假警报。它之所以有效,是因为我卸载了samba共享。对于通过samba挂载的目录,它仍然不起作用。而且效果很好。不幸的是,这不是一个好的选择,因为有一个旧的ASP.NET应用程序也需要访问这些文件。因此,我必须将它们存储在windows框中。。。。GRR。。。。MS总是让我头痛