相关疑难解决方法(0)

如何禁用生产日志文件中的Rails RoutingError stacktrace打印输出?

在我自豪的rails应用程序中,我得到了所有类型的随机攻击请求asp,zip和rar文件.Rails按预期呈现404页面,但我的生产日志文件被如下所示的RoutingError stacktrace转储所堵塞.

我的问题是:我可以在Apache/Passenger中阻止某些模式的URL吗?或者至少我可以配置Rails只记录错误本身而不是打印整个堆栈跟踪?谢谢!

Processing ApplicationController#index (for 100.222.237.7 at 2011-03-22 10:59:54) [GET]

ActionController::RoutingError (No route matches "/include/upfile_flash.asp" with {:host=>"www.myhost.com", :method=>:get, :domain=>"myhost.com", :subdomain=>"www"}):
  passenger (2.2.15) lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'
  passenger (2.2.15) lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
  passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:441:in `start_request_handler'
  passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:381:in `handle_spawn_application'
  passenger (2.2.15) lib/phusion_passenger/utils.rb:252:in `safe_fork'
  passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:377:in `handle_spawn_application'
  passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
  passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
  passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
  passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:163:in `start'
  passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:222:in `start'
  passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:253:in `spawn_rails_application'
  passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
  passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:247:in `spawn_rails_application'
  passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:80:in …
Run Code Online (Sandbox Code Playgroud)

logging production ruby-on-rails stack-trace

12
推荐指数
2
解决办法
2373
查看次数

如何使用带有Rails Active Storage的S3检索附件URL

rails version 5.2
Run Code Online (Sandbox Code Playgroud)

我有一个场景,我需要使用亚马逊s3访问Rails Active Storage的公共URL来制作带Sidekiq后台作业的zip文件.

我很难获得实际的文件网址.我试过以下

rails_blob_url
Run Code Online (Sandbox Code Playgroud)

但它让我跟随

http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZUk9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9598613be650942d1ee4382a44dad679a80d2d3b/sample.pdf
Run Code Online (Sandbox Code Playgroud)

如何通过sidekiq访问真实文件网址?

storage.yml

 test:
  service: Disk
  root: <%= Rails.root.join("tmp/storage") %>

local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

development:
  service: S3
  access_key_id: 'xxxxx'
  secret_access_key: 'xxxxx'
  region: 'xxxxx'
  bucket: 'xxxxx'
Run Code Online (Sandbox Code Playgroud)

development.rb

  config.active_storage.service = :development
Run Code Online (Sandbox Code Playgroud)

我可以在web界面上访问这些,但不能在sidekiq中访问

ruby-on-rails amazon-s3 rails-activestorage

11
推荐指数
3
解决办法
1万
查看次数

Rails ActiveStorage url_for返回无效的URL

我有一个带有头像的Employee模型。我可以将图像附加到头像上,但是每当我尝试显示图像时,

url_for(@employee.avatar)
Run Code Online (Sandbox Code Playgroud)

产生无效链接。我所看到的只是标签中alt属性的值。我得到的图像标签如下

<img src="/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--4786aa4d9d82d8f8d572b857965088b20fcb2f49/Portrait.jpg" 
alt="Thumbnail">
Run Code Online (Sandbox Code Playgroud)

而且我知道图像已正确附加。当我打电话给我时,我得到这个结果:

@employee.avatar
=> #<ActiveStorage::Attached::One:0x00007ff7e9ba41c0 @name="avatar",
@record=#<Employee id: 4, first_name: "Meda", last_name: "Burgdorf",  
created_at: "2019-03-03 23:03:00", updated_at: "2019-03-03 23:17:56">, 
@dependent=:purge_later> 
Run Code Online (Sandbox Code Playgroud)

正如我在存储目录中看到的图像 屏幕截图文件结构

非常感谢您的帮助。谁能帮我显示保存的图像。

这是我的设置。

class Employee < ApplicationRecord
   has_one_attached :avatar
   ...
end
Run Code Online (Sandbox Code Playgroud)

我的storage.yml文件的内容

local:
   service: Disk
   root: <%= Rails.root.join("storage") %>
Run Code Online (Sandbox Code Playgroud)

我从Active Storage的迁移已迁移。查看我的schema.rb文件

ActiveRecord::Schema.define(version: 2019_03_03_211537) do

  create_table "active_storage_attachments", force: :cascade do |t|
    t.string "name", null: false
    t.string "record_type", null: false
    t.integer "record_id", null: false
    t.integer "blob_id", null: false
    t.datetime "created_at", null: false
    t.index ["blob_id"], name: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-activestorage

3
推荐指数
1
解决办法
604
查看次数