هل هي مشكلة لإنشاء دليل لكل تحميل ملف، في تطبيق ويب على Linux / Unix؟

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

سؤال

أقوم بتحميل الملفات للحصول على تطبيق ويب (يعمل على UNIX / Linux). أنا أتساءل عما إذا كان هناك مصدر قلق إذا كنت تعتزم إنشاء دليل جديد لكل تحميل ملف؟ هذا هو النهج خارج الصندوق ل Ruby On Rails Plugin "PaperClip". أقوم بمناقشة ما هي المفاضلات، أو ما إذا كان الأمر ربما ليس مصدر قلق، إذا كان الانتشار على بيئة Linux / UNIX.

يبدو أن الخيارات هي:

  1. مجلد واحد لكل ملف مرفق - لكل طريقة paperclip يعمل خارج الصندوق
  2. ربما مجلد واحد لكل مستخدم ربما (IE إذا كانت خدمة الويب لديها مستخدمين متعددين مع حسابهم الخاص) - ثم يحتاج المرء إلى إضافة بعض التفرد إلى اسم الملف (ربما معرف النموذج)
  3. ضع جميع المرفقات في مجلد واحد - ولكن ربما يكون هذا يذهب بعيدا عن الاتجاه الآخر

سؤال - يجب أن أكون قلقا بشأن عدد الأدلة التي يتم إنشاؤها؟ هل هذه مشكلة ل O / S إذا كانت الخدمة شائعة؟ أي نصيحة لموقع الويب الذي يسمح للمستخدمين بحسابهم المنفصلين لتحميل الملفات، ما هيكل قد يكون جيدا فيما يتعلق بتخزينها؟ (أعتقد أنني قمت بخصم مفهوم تخزين الملفات في MySQL.)

شكرًا

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

المحلول

لتحمل محرك الأقراص المنسق EXT3 تحت Linux (الأكثر شيوعا).

من عند (http://en.wikipedia.org/wiki/ext3.)

"هناك حد 31998 مقدمة فرعية في الدليل الأول، الناجمة عن الحد من 32000 روابط لكل فونود. [13]

لذلك، إذا كنت قد تضغط على حد عمليات التحميليات 32 ألفا، فلا تكون ذلك مرتفعا، فسوف يفشل طلبك.

نصائح أخرى

ليس على هذا النحو، ولكن تناول شزون من مجلدات في دليل واحد (أو نفسه بالنسبة للملفات) لا ينصح به (إنه ضربة حقيقية للسرعة).

السبب: سلاسل نمط C

سيكون الحل الجيد لتخزين أشياء هيرشي (SIC؟) شيء مثل: / المسار / إلى / usernamefirstletter / اسم المستخدم / السنة / الشهر / الملف

إذا كان لديك قسم منفصل للدليل حيث يتم إنشاء الملفات / الدلائل الجديدة، أقول إنها ليست مشكلة. يمكن أن تحصل على مشكلة إذا كنت تستخدم قسم آخر نظرا لأنك تستطيع أن تنفد من Inodes و / أو مساحة القرص الحرة التي قد تكون سيئة.

باستخدام تقسيم منفصل (في حالة هجوم DOS) فقط إيقاف طلبك من العمل بشكل صحيح ولن يصب النظام بأي شكل من الأشكال.

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