هل يعالج نظام ملفات ذاكرة التخزين المؤقت Symfony ملفات Ext2 32000 في نفس الحد من الدليل؟

StackOverflow https://stackoverflow.com/questions/2689343

  •  01-10-2019
  •  | 
  •  

سؤال

هل يتعامل نظام Symfony Cache Ext2 32000 في نفس قيود الدليل؟

لدي 80000 مستخدم وأريد تخزين ملفات تعريف ملفات تعريفهم ولكن هل يقوم نظام ذاكرة التخزين المؤقت Symfony التعامل مع قيود Ext2؟

أنا أيضًا نشر للآخرين الذين سيواجهون نفس المشكلة.

هل كانت مفيدة؟

المحلول

لست متأكدًا 100 ٪ مما إذا كانت إجابتي صحيحة ولكن في PROJECT/lib/symfony/cache/sfCacheFile.class.php هناك طريقة: sfCacheFile::getFilePath() الذي يرجع مسار إلى ملف. يبدو أنه لا توجد أي حماية ضد قيود ext2 نظام الملفات.

ولكن هناك حل بسيط للغاية - تجاوز تلك الفئة:

  1. في 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
    
  2. الآن قم بإنشاء هذا الفصل وتأكد من امتداده 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);
        }
    

    }

  3. مسح ذاكرة التخزين المؤقت: ./symfony cc

أنت الآن بحاجة إلى 32000 مفتاح ذاكرة التخزين المؤقت التي تبدأ مع نفس الشيء بالضبط حرفين/أرقام لسحق نظام الملفات الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top