PDA

View Full Version : نحوه مدیریت پوشه ها برای آپلود تعداد زیادی فایل در روز



idocsidocs
جمعه 27 دی 1392, 20:21 عصر
اگر سایتی نیاز داشته باشه که بصورت روزانه تعداد زیادی فایل آپلود کنه چطور باید پوشه ها رو ایجاد کرد که سرعت جستجو و پیدا کردن فایل ها کند نشه؟

MMSHFE
جمعه 27 دی 1392, 23:32 عصر
بستگی به سرور داره. مثلاً عمل بازکردن یک پوشه توی ویندوز بطور معمول اگه توی اون پوشه بیشتر از 2000 فایل باشه، کند میشه. باید مستندات فنی سیستم عامل سرورتون رو مطالعه کنید یا توی اینترنت برحسب سیستم عامل سرور، این سؤال رو جستجو کنید. منظورم اینه که سؤالتون کلیه ولی جواب کلی براش وجود نداره.

idocsidocs
شنبه 28 دی 1392, 12:13 عصر
منظورم اینه که سؤالتون کلیه ولی جواب کلی براش وجود نداره.
وردپرس از روش YY/mm/dd استفاده می کنه و با ایجاد پوشه های تو در تو بر اساس زمان مدیریت فایلها رو انجام می ده اما اگر سایتی تعداد کاربرهاش زیاد باشه این روش جواب نمی ده

به دلیل اینکه تعداد پوشه ها زیاد می شن و خودم این روش رو نمی پسندم

ظاهرا باید بیشتر تحقیق کرد

Unique
شنبه 28 دی 1392, 14:50 عصر
بستگی به سرور داره. مثلاً عمل بازکردن یک پوشه توی ویندوز بطور معمول اگه توی اون پوشه بیشتر از 2000 فایل باشه، کند میشه
به سیستم عامل ربط نداره و به فایل سیستم ربط داره. هر فایل سیستیمی تعداد محدودی inode داره ، مثلا روی یک ext3 با ظرفیت 15GB ما 1933312 تا inode داریم. در واقع برای هر inode اصولا 4k نیاز هست.

البته به نظر من تا ۲۰۰۰۰۰ فایل هم مشکلی نیست ولی عددتون را به دست بیارین و بر اساس اون تقسیم انجام بدین و دایرکتروی بسازین. مثلا اگه توی هر فودر ۱۰۰۰ تا فایل داریم ! id شماره ۱۲۳۷ توی فولدر شماره ۲ هست و باید اون را جستجو کنیم.

idocsidocs
شنبه 28 دی 1392, 16:14 عصر
البته به نظر من تا ۲۰۰۰۰۰ فایل هم مشکلی نیست ولی عددتون را به دست بیارین و بر اساس اون تقسیم انجام بدین و دایرکتروی بسازین. مثلا اگه توی هر فودر ۱۰۰۰ تا فایل داریم ! id شماره ۱۲۳۷ توی فولدر شماره ۲ هست و باید اون را جستجو کنیم.
فال باید آپلود بشه و بدون نیاز به برنامه نویسی نمایش داده بشه

منظورم از جستجو وقتی هست که آدرس تصویر توی سورس سایت قرار می گیره و سرور باید تصویر رو لود کنه

در این صورت دیگه نیازی به برنامه نویسی نیست و باید پوشه ها و فایلها طوری ایجاد بشن که سرور بتونه فایل رو سریعتر پیدا کنه و نمایش بده

MMSHFE
شنبه 28 دی 1392, 22:27 عصر
میتونید درخواستها به فایلهای یک پوشه خاص رو بطور کلی به یک اسکریپت PHP ارجاع بدین (با htaccess.) و توی اون اسکریپت، ببینید آدرس فایل چی بوده و پیداش کنید و مثل دانلود غیرمستقیم، با کمک هدرها برای کلاینت بفرستین.

Unique
شنبه 28 دی 1392, 23:38 عصر
والا من نمیگیریم شما میخواین چیکار کنین ؟!

توی html آدرس ها را مستقیم میدین ؟ یعنی آدرس مستقیم به فایل عکس میدین ؟
یا عکس ها را با php میخونید و با header ارسال میکنید ؟

در هر دو صورت کافیه زمان upload فایل ها را بر اساس همون تقسیم بندی ذخیره و در زمان نمایش در هر دو حالت با php مسیر را بدین و کارتون را انجام بدین.

اگه واقعا من و آقای شهرکی از موضوع پرت هستیم ! لطفا مثال دقیق بزنید.

idocsidocs
یک شنبه 29 دی 1392, 02:42 صبح
والا من نمیگیریم شما میخواین چیکار کنین ؟!
سوالم اینه که سایتهای پر بازدید چطور فایلهایی که توسط کاربرها آپلود می شن رو مدیریت می کنن؟


توی html آدرس ها را مستقیم میدین ؟ یعنی آدرس مستقیم به فایل عکس میدین ؟
آره منظورم همینه

وقتی آدرس مستقیم می دیم اگر تعداد فایلها زیاد باشن طبیعتا پیدا کردن فایل توسط سرور زمان بر خواهد شد

از کدهای PHP فقط زمان آپلود استفاده می کنیم

راستش دیگه نمی دونم چطور منظورم رو برسونم!
:چشمک:

MMSHFE
یک شنبه 29 دی 1392, 09:15 صبح
نه حتی اگه دانلود غیرمستقیم هم بگذارین (طوری که کاربر متوجه نشه)، اگه مدیریت پوشه ها به نحوی باشه که سریع بشه پیدا کرد، مشکل کندی سرعت در پیدا کردن فایل پیش نمیاد. برای مثال، فرض کنید برحسب دو حرف اول اسم فایلها، اونها رو توی پوشه های مختلف میگذارین. در اینصورت توی پوشه آپلود، 729 پوشه خواهید داشت (27x27 - که 27 میشه تعداد حروف الفبای لاتین + 1 که این یکی هم برای کارکترهای غیر الفبا مثل اعداد و _ و... است). برای مثال اسامی پوشه های شما اینطوری میشه:
__
a_
b_
...
z_
_a
aa
ab
...
az
_b
ba
bb
...
bz
.
.
.
zz
و برحسب دو حرف اول اسم فایل، توی پوشه مربوطه قرارش بدین.

MMSHFE
یک شنبه 29 دی 1392, 09:18 صبح
البته سایتهایی که آمار بازدید بالایی دارن و کارشون هم مدیریت فایلهای آپلودشده توسط کاربران هست، یک دیتابیس از محل ذخیره سازی فایلها درست میکنن و حتی فایلها رو روی سرورهای مختلف میگذارن و وقتی یک فایل درخواست میشه، سرور و مسیرش رو از دیتابیس استخراج میکنن و بعد فایل رو در اختیار کاربر میگذارن واسه دانلود. نمیدونم روی چه حسابی میگین پیدا کردن فایل زمانبر میشه چون سایتهایی مثل MediaFire هم الآن از همین روش دارن استفاده میکنن.

idocsidocs
یک شنبه 29 دی 1392, 11:47 صبح
نمیدونم روی چه حسابی میگین پیدا کردن فایل زمانبر میشه چون سایتهایی مثل MediaFire هم الآن از همین روش دارن استفاده میکنن.
توی هر پوشه چندتا فایل می شه گذاشت؟

الان یه سایت گرفتم که مدیرش می گه می خوام 15،000 محصول به فروشگاه اضافه کنم و هر محصول 2 یا 3 تا تصویر داره

به عبارتی حدود 30،000 تصویر داریم

اگر همه این تصاویر رو توی یه پوشه قرار دادم موقعی که ادرس تصویر رو توی تگ img قرار می دم رو سرعت لود تصویر تاثیر نمی ذاره؟

Unique
یک شنبه 29 دی 1392, 18:02 عصر
اگر همه این تصاویر رو توی یه پوشه قرار دادم موقعی که ادرس تصویر رو توی تگ img قرار می دم رو سرعت لود تصویر تاثیر نمی ذاره؟

به هاست شما بستگی داره ولی با فرض لینوکس بودن اصلا این اعداد رقمی نیستند ! تا ۱۰۰۰۰۰ تا را با خیال راحت بریزین توی یک پوشه ! خود بنده تا ۵۰۰۰۰ تا روی سرویس دهنده ویندوز NTFS داشتم بدون مشکل ! نگران این موضوعات نباشین ! فکر کردم بحث میلیون دارین میکنین !

MMSHFE
یک شنبه 29 دی 1392, 18:13 عصر
درسته. اون عدد 2000 هم که من گفتم، توی ویندوز معمولی (نه سرور) و برای وقتی هست که با GUI بخواین یک پوشه رو ببینید و البته فایلهای پوشه هم Index گذاشته نشده باشن وگرنه توی همون ویندوز معمولی هم اگه فهرست فایلها رو با Command Prompt بخواین نشون بدین، مشکلی ازنظر سرعت نداره.

idocsidocs
دوشنبه 30 دی 1392, 10:39 صبح
درسته. اون عدد 2000 هم که من گفتم، توی ویندوز معمولی (نه سرور) و برای وقتی هست که با GUI بخواین یک پوشه رو ببینید و البته فایلهای پوشه هم Index گذاشته نشده باشن وگرنه توی همون ویندوز معمولی هم اگه فهرست فایلها رو با Command Prompt بخواین نشون بدین، مشکلی ازنظر سرعت نداره.



به هاست شما بستگی داره ولی با فرض لینوکس بودن اصلا این اعداد رقمی نیستند ! تا ۱۰۰۰۰۰ تا را با خیال راحت بریزین توی یک پوشه ! خود بنده تا ۵۰۰۰۰ تا روی سرویس دهنده ویندوز NTFS داشتم بدون مشکل ! نگران این موضوعات نباشین ! فکر کردم بحث میلیون دارین میکنین !
سیستم عامل که لینوکس هست

مسئله مهم اینه که روی سئو سایت تاثیر نداشته باشه چون سرعت سایت بصورت مستقیم روی نتایج جستجو ها تاثیر داره

می خوام طوری باشه که وقتی 50 تا از محصولات رو نمایش می دم سرعت لود کم نشه

تعداد استاندارد فایلها در هر پوشه (و در هر سیستم عامل) مشخص نشده که بر اساس اون پوشه ها رو ایجاد کرد؟

Unique
دوشنبه 30 دی 1392, 13:19 عصر
مسئله مهم اینه که روی سئو سایت تاثیر نداشته باشه چون سرعت سایت بصورت مستقیم روی نتایج جستجو ها تاثیر داره
توی سئو نباید تاثیری داشته باشه چون اصولا من منطقی براش نمیبینیم و انقدر که back link و rank و محتوا اثر داره سرعت لود تاثیری نداره (چون عموما بالا هست و میکرو ثانیه ها اهمیتی ندارند چون توسط کاربر احساس نمیسن [نظر کاملا شخصی])


می خوام طوری باشه که وقتی 50 تا از محصولات رو نمایش می دم سرعت لود کم نشه
اگه منظور شما پیدا کردن مسیر ها هستش که خیر اصلا کم نمیشه ! و اگه منظور Load صقحه هست که به سرع سرور و کلاینت بر میگرده.


تعداد استاندارد فایلها در هر پوشه (و در هر سیستم عامل) مشخص نشده که بر اساس اون پوشه ها رو ایجاد کرد؟
این موضوع مرتبط و جالبه (http://www.frank4dd.com/howto/various/maxfiles-per-dir.htm)

این اطلاعات هم همینطور :

FAT32:
Maximum number of files: 268,435,437
Maximum file size: 4GB
maximum number of files per directory: up to 65535, or less depending on file names
NTFS:
Maximum number of files: 4,294,967,295
Maximum file size: 16TB currently (16EB theoretically)
Ext2:
Maximum number of files: 10¹⁸
Maximum file size: 2TB
theoretical file per directory limit: 1.3 × 10²⁰ files
Ext3:
Maximum number of files: number of bytes in volume/2¹³.
Maximum file size: 16GB (1KB block) to 2TB (4KB block)

sh.n.n786
دوشنبه 30 دی 1392, 14:27 عصر
درود و ...
ميشه يكي inode رو توضيح بده اطلاعات دقيقي پيدانكردم.:ناراحت:

Unique
سه شنبه 01 بهمن 1392, 01:38 صبح
توضیحات فارسی (http://planet.sito.ir/inode-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F/)
توضیحات انگلیسی (http://www.cyberciti.biz/tips/understanding-unixlinux-filesystem-inodes.html)
ویکیپدیا (http://en.wikipedia.org/wiki/Inode)

با جستجو تو گوگل منابع دیگه هم میتونید پیدا کنید.