Nei*_*eil 8 ruby ruby-on-rails rails-activestorage
默认情况下,Rails Active Storage 似乎通过关联的active_storage_blob key.
默认行为的规则如下。目录内<Rails.root>/storage/:
key并创建一个目录
key并创建另一个目录
key例如:其中key关联的特定文件active_storage_blob是:2HadGpe3G4r5ygdgdfh5534346,它看起来如下所示:
我不想要这种嵌套行为。我想将文件平面存储在存储目录中。所以我只是希望它看起来像这样:
我怎样才能做到这一点?谷歌搜索和通读Active Storage Rails 指南没有找到解决方案。
也只是出于好奇:为什么这是默认行为?
在 ActiveStorage DiskService 的代码中深入研究,我找到了生成文件夹结构的代码。所有内容都方便地包含在一个函数中:
def folder_for(key)
[ key[0..1], key[2..3] ].join("/")
end
Run Code Online (Sandbox Code Playgroud)
这样可以通过简单的补丁轻松消除两个字母的子文件夹结构:
module ActiveStorage
class Service::DiskService < Service
private
def folder_for(key)
""
end
end
end
Run Code Online (Sandbox Code Playgroud)
最好对此补丁进行一些测试,但据我所知它应该可以正常工作。
仅通过查看 DiskService 代码无法确定第二个问题的答案。没有任何关于此文件夹结构的线索,因此原因可能在其他地方。这样做可能完全是出于装饰目的,以避免大型服务器上出现巨大的单个文件夹斑点。也许了解更多的人可以发表评论。
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |