سلام
من یه سایتی دارم که هر کاربر کلی اطلاعات مثل عکس دفترچه بیمه کارت ملی و ..... داره .یعنی وقتی میخوام صفحه یه کاربر رو ببینم تقریبا هر کدوم ۱۰ تا عکس لود میکنه . حالا برای امن کردم دسترسی به این عکس ها و کم کردن احتمال هک باید تمام این فایل ها و عکس هارو به سرور دیگه منتقل کنم و حتی لینک ها نباید نمایش داده بشن . من دو تا راه رو تقریبا بلدم. یکی ftp هست که بدون نصب لاراول باشه که البته نمیدونم تو این روش میشه لینک رو مخفی کرد یا نه. یکی دیگه هم نصب لاراول و ارسال عکس با api به صورت رمز گذاری و مخفی کردن لینک عکس هاست که اینم منطقی نیست چون برای گرفتن هر عکس تو یه صفحه باید api بزنه
اما الان نمیدونم دقیقا باید چیکار کنم لطفا راهنمایی کنید
@ali.bayat
@hesammousavi
@Alimotreb
@ali.farmani
از Storage لاراول هم میتونید استفاده کنید.
Storage در لاراول دو حالت public و local داره. public که قابل دسترسیه و local نیست.
اصلاعات بیشتر در مقاله زیر:
https://virgool.io/@ali.bayat/%DA%A9%D8%A7%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A8%D8%A7-%D9%81%D8%A7%DB%8C%D9%84%D9%87%D8%A7-%D8%AF%D8%B1-%D9%81%D8%B1%DB%8C%D9%85%D9%88%D8%B1%DA%A9-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-qwtzejvtrhk8
بله روی سرور خودمون هم اینکارو کردم اما چون قراره منتقل بشه اونجا هم باید لاراول نصب کنم؟ ایا منطقیه واسه ده تا عکس تو یه صفحه ده بار api بزنم؟
@ali.bayat
میتونید فایلها رو روی سرور خودتون قرار بدید و یه endpoint در api بوجود بیارید که هر ۱۰ مورد رو برگردونه. این جوری دیگه مجبور به نصب هم نیستید
یه روش قدیمی هست که از تابع base64_encode در PHP استفاده میکنه. مثالش رو براتون قرار میدم:
<?php
// First get your image
$image = 'path-to-your-picture/image.jpg';
$picture = base64_encode(file_get_contents($image));
echo '<img width="100" height="100" src="data:image/jpg;base64,'. $picture .'" />'
?>
در این روش آدرسی برای نشون دادن وجود نداره.
همچنین از وب سایت زیر هم برای انکود کردن میتونید استفاده کنید، هر چند خود PHP این کار رو انجام میده
https://www.motobit.com/util/base64-decoder-encoder.asp
ممنون از شما اتفاقا باید لینک رو هم مخفی کنم . اما هنوز به جواب سوالم نرسیدم که رو سرور دیگه باید چیکار کنم . خواهش میکنم کمی بیشتر راهنمایی کنید
@ali.bayat
روی سرور دیگه از کد بالا استفاده کنید و آدرس فایل ها رو مخفی کنید
. آدرس واقعی فایل رو در متغیر image$ قرار بدید و به همون صورت که در لاین ۵ میبینید... عکس رو نمایش بدید
در روشی که بالا گفتم (base64_encode) .. فقط اسم فایل در واقع مخفی میشه ولی هنوز دسترسی بهش ممکنه.
اگر فقط برای عکسها میخواهید یه سرور جدا داشته باشید.. دو کار میتونید انجام بدید
بدون نیاز به سرور دوم.. میتونید از Policy ها در لاراول استفاده کنید و دسترسی رو برای فرد یا افراد خاصی محدود کنید: این جوری فایلها روی همون سرور هستند و هر کسی نمیتونه دسترسی داشته باشه
اگر هم میخواهید با API کار کنید نیازی نیست API رو روی سرور جدا در نظر بگیرید. روی همین سایت هم میتونید یه API کوچک هم راهاندازی کنید.
سلام
@amini.parastoo
کلا 2 حالت دارید
به نظر من اگر میخوایید ببرید روی سرور دیگه ، یه اسکریپت براش بنویسید
منظورم API هست
خب درخواست بزنه! چه ایرادی داره
برای هر کاربر درخواست میزنه عکسشم میگیره!
فایل ها هم جای امنی هست دیگه کسی هم جز API دسترسی نداره
اگر هم میخوایید در یک سرور باشه ، که از storage لاراول و policy و گارد ها استفاده کنید برای سطح دسترسی ها!!
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟