Refile backend that's based on
Refile::Backend::FileSystem and stores files in sub-directories based on the given file id instead of storing all files on one directory.
Refile's out-of-the-box backend
Refile::Backend::FileSystem stores all files within one directory which can get very large and makes maintenance (
ls, etc.) very slow. This gem extends the default behavior, it splits up the directory in tiny chunks based on the given file id. For example if there is a file with id
0601ae4450cdc210ab9d05da50c392ee1c4b1894e8b2bc9cc5cc9e41e691 it stores the file in the nested directory
06/01/ae/44/0601ae4450cdc210ab9d05da50c392ee1c4b1894e8b2bc9cc5cc9e41e691 within the given directory.
refile-filesystem-hashed to your Gemfile.
gem 'refile-filesystem-hashed', '~> 1.0.1', require: 'refile/backend/file_system_hashed'
backend = Refile::Backend::FileSystemHashed.new("/uploads") backend.path('0601ae4450cdc210ab9d05da50c392ee1c4b1894e8b2bc9cc5cc9e41e691') => "/uploads/06/01/ae/44/0601ae4450cdc210ab9d05da50c392ee1c4b1894e8b2bc9cc5cc9e41e691"
You can replace
Refile::Backend::FileSystem at any time as the gem will automagically move existing files to the new hashed directory structure.