View Full Version : دانلود و آپلود فایل از طریق جنگو
MrMindx
شنبه 23 آبان 1394, 22:53 عصر
سلام
من یه سناریو دارم به صورت زیر:
کاربر یه فایلی رو به سرور جنگو می فرسته و سرور اون فایل رو توسط یه app پردازش می کنه که خروجی اون اپ چنتا segment یا خورده فایل رمز شده هست و هر segment باید روی یک سرور متفاوت ذخیره بشه.
در مرحله دانلود هم کاربر درخواست دریافت فایلش رو به سرور جنگو می ده و سرور می ره و سگمنت ها رو دریافت می کنه از محلی که ذخیره شدن و فایل رو مجددا سر هم بندی می کنه و به کاربر تحویل می ده.
سوال من این هست که با توجه به سناریو، چه مکانیسمی برای ذخیره سازی فایل استفاده کنم؟
کاربر که درخواست فایل میده مرحله بازیابی سگمنت ها توسط جنگو باید سریع انجام بشه. برای اون فازی که جنگو می خواد segment ها رو ذخیره کنه روی سرورهای متفاوت و بعد هم دریافتشون کنه چه راه حلی پیشنهاد می کنید؟
n.nowroozi
یک شنبه 24 آبان 1394, 08:17 صبح
سلام
من یه سناریو دارم به صورت زیر:
کاربر یه فایلی رو به سرور جنگو می فرسته و سرور اون فایل رو توسط یه app پردازش می کنه که خروجی اون اپ چنتا segment یا خورده فایل رمز شده هست و هر segment باید روی یک سرور متفاوت ذخیره بشه.
در مرحله دانلود هم کاربر درخواست دریافت فایلش رو به سرور جنگو می ده و سرور می ره و سگمنت ها رو دریافت می کنه از محلی که ذخیره شدن و فایل رو مجددا سر هم بندی می کنه و به کاربر تحویل می ده.
سوال من این هست که با توجه به سناریو، چه مکانیسمی برای ذخیره سازی فایل استفاده کنم؟
کاربر که درخواست فایل میده مرحله بازیابی سگمنت ها توسط جنگو باید سریع انجام بشه. برای اون فازی که جنگو می خواد segment ها رو ذخیره کنه روی سرورهای متفاوت و بعد هم دریافتشون کنه چه راه حلی پیشنهاد می کنید؟
ذخیره سازیت که به نظرم حالت نرمال جنگو جواب کارت رو میده فقط هربار که چیزی ذخیره شد باید اپت رو کال کنی که فایل رو بگیره.
ولی برای بازیابی اگه حجم فایلت زیاد باشه یا اینکه پروسه سرهم بندی فایلها زیاد باشه احتمال timeout شدن ریکوئستت هست. پس باید از طریق push کردن ایونت کار کنی نه راه حل نرمال جنگو! چون چندتا سرور هم داری حتما باید fail شدن هرکدوم از سرورهات رو هم در نظر بگیری
MrMindx
یک شنبه 24 آبان 1394, 10:27 صبح
ذخیره سازیت که به نظرم حالت نرمال جنگو جواب کارت رو میده فقط هربار که چیزی ذخیره شد باید اپت رو کال کنی که فایل رو بگیره.
ولی برای بازیابی اگه حجم فایلت زیاد باشه یا اینکه پروسه سرهم بندی فایلها زیاد باشه احتمال timeout شدن ریکوئستت هست. پس باید از طریق push کردن ایونت کار کنی نه راه حل نرمال جنگو! چون چندتا سرور هم داری حتما باید fail شدن هرکدوم از سرورهات رو هم در نظر بگیری
من جنگو رو تازه شروع کردم فقط هم به خاطر این پروژه، ذخیره سازی نرمال یعنی چی؟ چون نرمالش که به صورت local فایل ها رو ذخیره می کنه.
دقیقا یکی از چالش ها همین مسئله timeout به خاطر طولانی شدن مراحل بازیابی سگمنت ها و بازسازی فایل هست. به کلاینت های pc هم امکان پوش کردن هست؟ من اصلا نشنیده بودم در این مورد.
حالا فعلا دغدغه اصلیم بر سر نحوه ذخیره سازی هست. توی بازیابی به خاطر خاصیت الگوریتمم حتی سه تا از سرورای میزبان هم که از بین برن فایل همچنان قابل بازیابی خواهد بود.
برای ذخیره سازی از سمت جنگو به سروها میزبان چه کار کنم دقیقا به نظر شما؟ سرورهای میزبان توی دامین همون سرور جنگو هستن.
n.nowroozi
یک شنبه 24 آبان 1394, 13:21 عصر
۱. ذخیره سازی نرمال یعنی چی؟ چون نرمالش که به صورت local فایل ها رو ذخیره می کنه.
۲.دقیقا یکی از چالش ها همین مسئله timeout به خاطر طولانی شدن مراحل بازیابی سگمنت ها و بازسازی فایل هست. به کلاینت های pc هم امکان پوش کردن هست؟ من اصلا نشنیده بودم در این مورد.
۳.برای ذخیره سازی از سمت جنگو به سروها میزبان چه کار کنم دقیقا به نظر شما؟ سرورهای میزبان توی دامین همون سرور جنگو هستن.
۱.آره همون لوکال ذخیره کنید حالا واسه تبادل اطلاعات میتونید یه nfs راه بندازید که لوکال جنگو شما قابل رویت روی باقی سرورهاتون هم باشه یا اینکه فایل رو انتقال بدید به اون سرورها حالا هرطور که پروژه تون میطلبه ولی راه حل اول معقولتره به نظرم.
۲.آره میتونید سوکتی کار کنید . که البته جنگو واسه سوکت ابزاری نداره باید از فریم ورکهایی مثل twisted ، tornado, .... استفاده کنید واسه پوش کردن ایونت. اگه کلا کلاینت وبی ندارید نیازی نیست از جنگو استفاده کنید.
۳. رو هم توی همون یک جواب دادم :)
MrMindx
یک شنبه 24 آبان 1394, 16:36 عصر
۱.آره همون لوکال ذخیره کنید حالا واسه تبادل اطلاعات میتونید یه nfs راه بندازید که لوکال جنگو شما قابل رویت روی باقی سرورهاتون هم باشه یا اینکه فایل رو انتقال بدید به اون سرورها حالا هرطور که پروژه تون میطلبه ولی راه حل اول معقولتره به نظرم.
۲.آره میتونید سوکتی کار کنید . که البته جنگو واسه سوکت ابزاری نداره باید از فریم ورکهایی مثل twisted ، tornado, .... استفاده کنید واسه پوش کردن ایونت. اگه کلا کلاینت وبی ندارید نیازی نیست از جنگو استفاده کنید.
۳. رو هم توی همون یک جواب دادم :)
1. مشکل من دقیقا انتقال سگمنت ها به روی سرورها و دریافت مجددشون هست. چه راهکاری دقیقا پیشنهاد می کنی؟
سپاس
n.nowroozi
یک شنبه 24 آبان 1394, 20:48 عصر
1. مشکل من دقیقا انتقال سگمنت ها به روی سرورها و دریافت مجددشون هست. چه راهکاری دقیقا پیشنهاد می کنی؟
سپاس
گفتم که یه راهکار nfs هست اگه نمیدونی چیه اینجا (https://en.wikipedia.org/wiki/Network_File_System) میتونی بخونی.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.