symfony 缓存文件系统是否可以处理同一目录限制中的 ext2 32000 个文件?
symfony 缓存系统是否可以处理同一目录限制中的 ext2 32000 个文件?
我有 80000 个用户,我想缓存他们的配置文件,但是 symfony 缓存系统可以处理 ext2 限制吗?
我还为其他将面临同样问题的人发帖。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定我的答案是否正确,但在
PROJECT/lib/symfony/cache/sfCacheFile.class.php
中有一个方法:sfCacheFile::getFilePath()
返回文件的路径。似乎没有任何针对ext2
文件系统限制的保护措施。但有一个非常简单的解决方案 - 覆盖该类:
在
PROJECT/apps/APP/config/factories.yml
设置您自己的缓存类:<前><代码>默认:
# 其他工厂(如果有)
视图缓存:
类: myOwnFileCache
参数:
自动清洁系数:0
缓存目录:%SF_TEMPLATE_CACHE_DIR%
寿命:86400
前缀:%SF_APP_DIR%/模板
现在创建该类并确保它扩展
sfFileCache< /code> 并覆盖
getFilePath()
}
清除缓存:
./symfony cc
现在您需要 32000 个以完全相同两个字母/数字开头的缓存键来粉碎您的文件系统。
I'm not 100% sure whether my answer is correct but in
PROJECT/lib/symfony/cache/sfCacheFile.class.php
there is a method:sfCacheFile::getFilePath()
that returns a path to a file. It seems that there is no any protection against limitations ofext2
filesystem.But there is a very simple solution - override that class:
In
PROJECT/apps/APP/config/factories.yml
set your own cache class:Now create that class and make sure it extends
sfFileCache
and overridesgetFilePath()
}
Clear cache:
./symfony cc
Now you need 32000 cache keys that starts with the exact same two letters/digits to crush your filesystem.