آفلاین
user-avatar

ذخیره سازی فایل بصورت امن در موبایل

5 ماه پیش
توسط mmjvox آپدیت شد
آفلاین
user-avatar
ایمان روستا ( 7105 تجربه )
5 ماه پیش
تخصص : برنامه نویس موبایل ، وب و اپلیکیشن

سلام دوستان
میخواستم بدونم آیا میشه فایل ویدیویی در موبایل با استفاده از برنامه نویسی (React Native) ذخیره کرد و اون فایل از راه های جستجو نتونیم پیداش کنیم و فقط اپ قابل اجرا کردن اون فایلو داشته باشه (یجورایی امن کردن فایل ویدویی)؟
ایا میشه از راه های ذخیره سازی local استفاده کرد ؟ مانند AsyncStorage یا روش های دیگر...

آفلاین
user-avatar
mmjvox ( 6190 تجربه )
5 ماه پیش
تخصص : QML,Objective-C,Qt/C++,Webassembly

آره چرا نشه ولی کار خیلی سختی هست و پیشنهاد می کنم کلا این کار رو نکنید

شما می تونی هدر فایل رو خراب کنی که فایل قابل خوندن نباشه و شما قبل از لود پلیر هدر رو به فایل اضافه کنید یا این که هر فایل رو تبدیل به چند فایل تکه تکه شده کنید که قابل خوندن نباشند و موقع پلی این فایل ها رو پشت سر هم لود کنید (بهتره این قسمت رو با java یا cpp بنویسید چون نیاز به بافر های قوی و سیتمی که بتونه بافر ها رو به موقع پر کنه دارید و پلیر باید بتونه به جای خوندن مستقیم از روی فایل از روی بافر بخونه و بعد این قسمت رو متصل کنید به پروژه) (من این روش فایل های تکه تکه شده رو برای ios و android برای فایل های صوتی با حجم حدودی 700 مگ با cpp انجام دادم و با توجه به پردازنده های ضعیف موبایل هم موقع ریکورد هم موقع پلی عالی عمل می کرد)

یا می تونید دیتابیسی توی حافظه داخلی گوشی تشکلیل بدید و فایل ها رو به صورت blob داخلش ذخیره کنید ( برای مثال sqlite می تونه توی هر blob حدود یک گیگ فایل ذخیره کنه) (این روش نیازمند اصلا این هست که دیتابیس شما بتونه اطلاعات داخل هر blob رو به صورت تکه تکه سلکت کنه که اینجا sqlite همچین کاری رو نمی تونه انجام بده)

آفلاین
user-avatar
محمد عرفان حسین بیکی ( 1628 تجربه )
5 ماه پیش
تخصص : شغلی ندارم در حال یادگیریم

@mmdjv.kh94

میشه کتاب خانه ای نمونه کدی یا آموزشی براش معرفی کنید

آفلاین
user-avatar
mmjvox ( 6190 تجربه )
5 ماه پیش
تخصص : QML,Objective-C,Qt/C++,Webassembly

@sswwwcom4
@iman.ro86

دقت کنید این جور مسائل چیز معمولی و پرکاربردی نیست که نیاز همه باشه و اگه لایبرری هم براش پیدا بشه معلوم نیست اون لایبرری به درد این پروژه بخوره یا نه
معمولا وقتی قرار هست فایلی رو کاری کنیم که نتونن بخونن درست ترین راه اینه که اون فایل encrypt بشه .. که همین الان حتی نرم افزار های کتابخوان ایرانی کتاب های فروشی داخلشون رو به صورت pdf رمز شده داخل گوشی ذخیره می کنن ولی این برای یک فایل pdf جوابگو هست نه یک فایل ویدئویی که دوستمون پرسیده ، شما فکر کنید فایل 500 مگی رو چجوری در طول چند ثانیه روی گوشی انکریپت و دیکریپت کنیم؟ مگه این که یک کدک اختصاصی برای این کار بسازیم که توسط پلیر دیگه ای خونده نشه

برای همین گفتم پیشنهاد من اینه که کلا بی خیال این کار بشن

ولی راه های اینشکلی هم هستن که میتونه به ایشون کمک کنه .. نیازی هم به encrypt کردن نداره (پردازش زیادی نیاز نداره) و کسی هم که بتونه این روش رو دور بزنه دنبال این نیست بیاد ویدئو شما رو کپی کنه

دیگه این انتخاب ایشونه که بیخیال بشه یا نه اگه واقعا ارزش داره وقت بزاره براش

من کتابخانه ای که دقیقا برای این کار ساخته شده باشه نمی شناسم.
یک مثال برای تکه تکه کردن فایل با جاوا

دنبال همچین چیز هایی باید بگردید

حالا راه و روش های بهتر و سریعتری هم هست ولی خپ پیاده سازیش سخت تره
برای مثال شما می تونید کل فایل ویدئو رو بدون فشرده سازی zip کنید و پسورد بزارید و موقع خودن بدون این که توی فایل دیگه‌ای اسکترکتش کنید مستقیم بخونید (فقط شمار کمی از لایبرری ها می‌تونن همچین کاری رو با پردازش سبک انجام بدن)
برای مثال لایبرری libarchive به راحتی این کار رو می کنه
libarchive
در نگاه اول باتوجه به این که حتی برای اندروید هم فایل make داره آسون به نظر میاد ولی آماده سازی این لایبرری برای پروژه خودش یک پروژه بزرگتره...

حالا خوشبختانه برای js از libarchive یک wraper هم ساختن ولی نمی دونم به درد شما بخوره یا نه
رپر برای libarchive
ولی توی توضیحات این wraper این رو هم نوشته "Decompression might take a while for larger files."

برای ارسال پاسخ باید وارد سایت شوید