我们能否将创建的默认“永久”url 从活动存储更改为重定向到 S3。类似于 rails/active_storage/representations/. 我不喜欢 url 中的框架名称。
谢谢
我们能否将创建的默认“永久”url 从活动存储更改为重定向到 S3。类似于 rails/active_storage/representations/. 我不喜欢 url 中的框架名称。
谢谢
更新:最近,有一个添加可以在 Rails 6 中配置路由前缀:https ://guides.rubyonrails.org/6_0_release_notes.html#active-storage-notable-changes
这只是一个配置问题:
Rails.application.configure do
config.active_storage.routes_prefix = '/whereever'
end
不幸的是,该 url 是在 ActiveStorage routes.rb中定义的,没有简单的方法可以更改:
get "/rails/active_storage/blobs/:signed_id/*filename" =>
"active_storage/blobs#show", as: :rails_service_blob
get "/rails/active_storage/representations/:signed_blob_id/:variation_key/*filename" =>
"active_storage/representations#show", as: :rails_blob_representation
我能想到的一个解决方案起点是另外定义自己的路线并覆盖“rails_blob_representation_path”或类似的
get "/my_uploads/:signed_blob_id/:variation_key/*filename" =>
"active_storage/representations#show", as: :my_upload
然后覆盖帮助文件中的路径并将帮助程序包含到命名帮助程序中:
module CustomUrlHelper
def rails_blob_representation(*args)
my_upload(*args)
end
end
# initializer etc.
Rails.application.routes.named_routes.url_helpers_module.send(:include, CustomUrlHelper)
该解决方案可能需要一些调整,但我没有测试它。