سلام خدمت همگی، من میخوام فایل های ویدئو رو که تو سرور ftp ذخیره کردم رو بتونم به کاربر نشون بدم به صورتی که آدرس فایل لو نره و این کار به صورت ایمن انجام بشه، در ضمن با لاراول کار میکنم،
ممنون میشم بتونید راهنماییم کنید
سلام! برای نمایش امن ویدئوهایی که روی سرور FTP ذخیره کردهاید، بدون اینکه آدرس مستقیم فایل به کاربر نشان داده شود، میتوانید از مراحل زیر استفاده کنید:
با استفاده از این روش، ویدئو را به صورت مستقیم از سرور به کاربر ارسال میکنید بدون اینکه لینک مستقیم به او نشان داده شود.
- **ایجاد یک Route در لاراول**: یک route جدید در فایل `web.php` ایجاد کنید که درخواستهای استریم ویدئو را هندل کند:
```php
Route::get('/video/stream/{filename}', [VideoController::class, 'streamVideo']);
```
- **ایجاد کنترلر برای استریم ویدئو**:
در `VideoController`، یک متد برای استریم ویدئو ایجاد کنید:
```php
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\StreamedResponse;
class VideoController extends Controller
{
public function streamVideo(Request $request, $filename)
{
$filePath = "ftp://username:password@ftp-server-address/path-to-video/$filename";
return response()->stream(function () use ($filePath) {
$stream = fopen($filePath, 'r');
while (!feof($stream)) {
echo fread($stream, 1024 * 8);
flush();
}
fclose($stream);
}, 200, [
'Content-Type' => 'video/mp4',
'Content-Length' => filesize($filePath),
'Accept-Ranges' => 'bytes',
'Content-Disposition' => 'inline; filename="' . $filename . '"',
]);
}
}
```
- **محدودیت دسترسی**:
میتوانید با استفاده از middlewareهای لاراول مانند `auth` دسترسی به این route را محدود کنید تا فقط کاربران مجاز بتوانند ویدئو را مشاهده کنند.
در این روش، میتوانید از لینکهای موقت برای دسترسی به فایلها استفاده کنید. به عنوان مثال، اگر از یک سیستم ابری یا فضای ذخیرهسازی خاص استفاده میکنید که قابلیت تولید لینک موقت دارد، میتوانید از آن استفاده کنید.
- از توابع PHP مانند `ftp_fget` یا `stream_get_contents` برای خواندن فایلها از سرور FTP استفاده کنید و آنها را در پاسخ به کاربر ارسال کنید.
- اگر حجم فایلها بالا نیست، میتوانید فایلهای ویدئویی را به صورت موقت در سرور وب ذخیره کنید و سپس به کاربر نمایش دهید.
با استفاده از این روشها میتوانید فایلهای ویدئویی را به صورت ایمن و بدون نمایش آدرس واقعی به کاربر، استریم کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟