0

我有使用 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}"

这在服务器上有效。所以我有2个问题

  1. 为什么早期的代码可以在开发机器上运行,但不能在测试服务器上运行?
  2. 还有为什么早期的代码在从 Rails 控制台调用时有效?
4

1 回答 1

0

可能是权限问题。运行 Web 服务器的帐户是否具有对公共/声音的写入权限。这可以解释为什么在 Rails 控制台中工作,因为您会以您的身份登录,我认为这也是创建目录的帐户。

于 2013-09-20T12:44:41.877 回答