Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Senior Performance 5

Як оптимізувати роботу з великими файлами (завантаження/скачування)?

Ключове правило - не тримати весь файл у пам'яті.

  • Стрімінг замість читання цілком:
    return Storage::disk('s3')->response($path); // стрім на скачування
    Storage::writeStream($path, fopen($source, 'r')); // стрім на запис
    
  • Direct uploads на S3 - клієнт вантажить напряму в сховище за pre-signed URL, минаючи PHP-процес (не блокує воркер, обходить ліміти upload_max_filesize).
  • Chunked upload - великі файли частинами (resumable).
  • Фонова обробка - конвертацію відео/зображень виносити в черги.
  • Враховувати max_execution_time, таймаути nginx і ліміти пам'яті воркера.

Докладніше в документації: Зберігання файлів (стрімінг)

Схожі питання