ruby-on-rails - 部署为 .war 文件时如何处理 Rails 中的上传和日志?

标签 ruby-on-rails logging upload jruby torquebox

我正在尝试在 Warbler (Tomcat) 和/或 Torquebox 4 (Wildfly) 的帮助下使用 .war 文件在 jRuby 上部署 Rails。我面临的问题是,在这种情况下,我不知道如何使用 Carrierwave 或 Paperclip 处理上传。 理想情况下,上传应存储在 war 之外,因为它可能随时被更新版本的应用程序替换。 在将应用程序作为 war 文件打包到/home/username/uploads(权限设置为 777)目录之前,我尝试在公共(public)目录中创建一个符号链接(symbolic link)(上传),但这不起作用(我收到 500 错误) .

另外,我如何在部署 war 文件后访问 production.log?或者我应该把日志放在哪里?

更新 我想出了如何配置 Carrierwave 以将上传存储在 war 文件之外:

if Rails.env.development?
    CarrierWave.configure do |config|
      config.root = "/Users/Username/username_uploads/uploads"
    end
elsif Rails.env.production?
    CarrierWave.configure do |config|
      config.root = "/home/username/username_uploads/uploads"
    end
end

现在 Carrierwave 可以毫无问题地上传文件,但是当我尝试查看它们时出现 404 错误。 我试图在 war 文件中包含一个指向上传文件夹的符号链接(symbolic link),但没有成功。我尝试在运行 warble war 之前以及在将应用程序部署到 Tomcat(在 app_name 文件夹内)之后创建它。

知道如何解决这个问题吗?

更新 2 我在这里找到了一个可行的解决方案: Configure Symlinks for single directory in Tomcat

简而言之: cd 进入 tomcat 创建的 exploded war 目录(你可以在 tomcat/webapps 下找到它)(如果上传的 war 文件的名称是 yourapp.war 那么目录名称将是 Tomcat 8 中的 yourapp )。 使用 sudo mkdir uploads 创建上传文件夹 创建挂载点:sudo mount --bind/path/to/actual/upload/directory/uploads uploads

我还没有用 Wildfly 测试过这个,但我会在今天晚些时候或明天进行测试。如果我没记错的话默认情况下它不会自动爆破war文件。

不过,我仍然想知道针对该问题的其他、更简单、不同的解决方案,以及对我找到的解决方案的看法。

最佳答案

只是对不同方法的思考......

使用“基于云”的存储服务将使 Assets 的上传和服务问题消失,如果您需要第二个节点,它还可以更简单地扩展应用程序,

它还会减少扩展应用程序的需要,因为您可以有效地将 ruby​​ 传统上处理不当的大数据操作委托(delegate)给不同的服务

Amazon S3是一个明显的选择,but check out Riak too

关于ruby-on-rails - 部署为 .war 文件时如何处理 Rails 中的上传和日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28535802/

相关文章:

ruby-on-rails - 如何在 Ruby on Rails 中将\r\n 转换为简单格式的 <p>?

ruby-on-rails - 从 crontab 运行 rake 任务

java - 登录 Unix 位置

logging - 如何解读windows APPCRASH神秘日志?

java - log4j append=false 对我不起作用……为什么?

ruby-on-rails - capistrano 密码提示

ruby-on-rails - Ruby 开发环境(OS X 与 Ubuntu)

java - 无法让 HttpClient 执行 Imgur API v3 发布请求

node.js 错误 : body attribute missing in multipart when uploading to youtube

php - 为什么在 PHP 中调整上传图片大小时我的图片会旋转?