>我有一个应用程序,我使用 SoX 转换音频文件,代码相同
system "sox public/sound/recording.wav public/sound/recording.mp3"
这在我的开发计算机上运行良好,但在测试服务器上则不然。此外,当我在 rails 控制台中运行此代码时,它可以在测试服务器上很好地工作。后来我将代码更改为下面
file1 = Rails.root.join("public/sound/recording.wav")
file2 = Rails.root.join("public/sound/recording.mp3")
system "sox #{file1} #{file2}"
这在服务器上有效。所以我有两个问题
- 为什么早期的代码在开发计算机上工作,但在测试服务器上不起作用?
- 还有为什么早期的代码在从 rails 控制台调用时有效?
这可能是权限问题。运行 Web 服务器的帐户是否具有对公共/声音的写入访问权限。这可以解释为什么在 Rails 控制台中工作,因为您会以您和我假设这也是创建目录的帐户一样登录。