在我自豪的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) 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中访问
我有一个带有头像的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)