هل يعالج نظام ملفات ذاكرة التخزين المؤقت Symfony ملفات Ext2 32000 في نفس الحد من الدليل؟
سؤال
هل يتعامل نظام Symfony Cache Ext2 32000 في نفس قيود الدليل؟
لدي 80000 مستخدم وأريد تخزين ملفات تعريف ملفات تعريفهم ولكن هل يقوم نظام ذاكرة التخزين المؤقت Symfony التعامل مع قيود Ext2؟
أنا أيضًا نشر للآخرين الذين سيواجهون نفس المشكلة.
المحلول
لست متأكدًا 100 ٪ مما إذا كانت إجابتي صحيحة ولكن في PROJECT/lib/symfony/cache/sfCacheFile.class.php
هناك طريقة: sfCacheFile::getFilePath()
الذي يرجع مسار إلى ملف. يبدو أنه لا توجد أي حماية ضد قيود ext2
نظام الملفات.
ولكن هناك حل بسيط للغاية - تجاوز تلك الفئة:
في
PROJECT/apps/APP/config/factories.yml
اضبط فئة ذاكرة التخزين المؤقت الخاصة بك:default: # Others factories (if any) view_cache: class: myOwnFileCache param: automatic_cleaning_factor: 0 cache_dir: %SF_TEMPLATE_CACHE_DIR% lifetime: 86400 prefix: %SF_APP_DIR%/template
الآن قم بإنشاء هذا الفصل وتأكد من امتداده
sfFileCache
وتجاوزgetFilePath()
# PROJECT/lib/PROJECT/cache/myOwnFileCache.class.php class myOwnFileCache extends sfFileCache { protected getFilePath($key) { /* Convert from: abcdef to: a/b/abcdef */ $key = substr($key, 0, 1) . DIRECTORY_SEPARATOR . substr($key, 1, 1) . DIRECTORY_SEPARATOR . $key; return parent::getFilePath($key); }
}
مسح ذاكرة التخزين المؤقت:
./symfony cc
أنت الآن بحاجة إلى 32000 مفتاح ذاكرة التخزين المؤقت التي تبدأ مع نفس الشيء بالضبط حرفين/أرقام لسحق نظام الملفات الخاص بك.