1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/peinhu-aetherupload-laravel

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

В файле .env необходимо изменить значения параметров APP_NAME и APP_KEY в соответствии с конфигурацией сервера приложения. Добавить параметр SESSION_DOMAIN=.your-domain.com для совместного использования cookie. Изменить значение параметра SESSION_DRIVER на redis для совместного использования сессии.

Используя удобные команды artisan:

  • php artisan aetherupload:groups — перечислить все группы и автоматически создать соответствующий каталог;
  • php artisan aetherupload:build — перестроить ресурсы файлов в Redis;
  • php artisan aetherupload:clean 2 — удалить недействительные временные файлы за последние 2 дня;
  • php artisan aetherupload:publish — упростить команду vendor:publish, перезаписать некоторые каталоги и файлы.

Оптимизация

  • Рекомендуется настроить ежедневное автоматическое удаление недействительных временных файлов. Поскольку в процессе загрузки могут возникнуть непредвиденные прерывания, например, принудительное закрытие страницы или браузера, это может привести к созданию недействительных файлов, занимающих много места на диске. Можно использовать функцию планирования задач Laravel для их регулярного удаления. В Linux выполните команду crontab -e, чтобы убедиться, что файл содержит следующую строку кода:
* * * * * php /абсолютный путь к корневому каталогу проекта/artisan schedule:run 1>> /dev/null 2>&1

В методе schedule файла app/Console/Kernel.php добавьте следующий код:

$schedule->command('aetherupload:clean 2')->daily();
  • Рекомендуется повысить эффективность чтения и записи заголовков файлов. Для этого можно заменить файловую систему заголовков с локального жёсткого диска на Redis, что ускорит чтение и запись заголовков. В файле config/aetherupload.php измените значение параметра header_storage_disk на redis. В разделе disks файла config/filesystems.php добавьте конфигурацию redis:
'disks' => [
    ...
    'redis' => [
        'driver' => 'redis',
        'disable_asserts'=>true,
    ],
    ...
]
  • Настроить ежедневное автоматическое восстановление списка секундных передач в Redis. Неправильное управление и некоторые экстремальные ситуации могут привести к появлению грязных данных в списке секундных передач, что повлияет на точность функции секундной передачи. Восстановление списка секундных передач поможет устранить грязные данные и восстановить синхронизацию с реальными файлами ресурсов. В Linux запустите команду crontab -e и убедитесь, что файл содержит следующий код:
* * * * * php /абсолютный путь к корневому каталогу проекта/artisan schedule:run 1>> /dev/null 2>&1

Добавьте следующий код в метод schedule файла app/Console/Kernel.php:

$schedule->command('aetherupload:build')->daily();
  • Повысить скорость чтения и записи фрагментированных временных файлов (только для PHP). Используя файловую систему Linux tmpfs, можно ускорить чтение и запись фрагментированных временных файлов, размещая их в памяти. Это улучшит производительность, но потребует дополнительного использования части памяти (примерно размер одного фрагмента). В php.ini установите значение параметра upload_tmp_dir равным "/dev/shm" и перезапустите fpm или apache.

  • Повысить скорость чтения и записи фрагментированных временных файлов (для системного временного каталога). Используя файловую систему Linux tmpfs, можно ускорить чтение и запись фрагментированных временных файлов, размещая их в памяти. Это улучшит производительность, но потребуется дополнительного использования части памяти (примерно размер одного фрагмента). Выполните следующие команды:

mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp

Совместимость

| | IE | Edge | Firefox | Chrome | Safari | | --- | --- | --- | --- | --- | | Загрузка | 10+ | 12+ | 3.6+ | 6+ | 5.1+ | | Секундная передача | 10+ | 12+ | 3.6+ | 6+ | 6+ |

Безопасность

AetherUpload использует белый список и чёрный список для фильтрации расширений файлов перед загрузкой и проверки типа MIME после загрузки. Белый список напрямую ограничивает сохранение расширений файлов, а чёрный список по умолчанию блокирует распространённые исполняемые расширения файлов, предотвращая загрузку вредоносных файлов. Однако, несмотря на все меры безопасности, загрузка вредоносных файлов остаётся возможной. Рекомендуется правильно настроить права доступа к каталогам загрузки и убедиться, что соответствующие программы не имеют прав на выполнение для загруженных файлов.

Обновление журнала

2021-01-04 v2.0.8

  • Исправлена ошибка при выполнении route:cache.
  • Добавлено предупреждение о неправильном типе MIME.
  • Оптимизировано объединение JS-файлов.

Подробности смотрите в файле CHANGELOG.md.

Производные проекты

Laravel-admin — расширение формы: large-file-upload.

Лицензии

Используется лицензия GPLv2 и Anti 996. Подробности смотрите в файлах LICENCE и LICENSE_996.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

**Upload big files for Laravel: расширение для загрузки больших файлов в Laravel** В статье описывается расширение, которое позволяет пользователям загружать большие файлы с использованием фреймворка Laravel. Это может быть полезно при работе с файлами большого размера, такими как изображения или видео. Автор статьи предоставляет подробные инс... Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/peinhu-aetherupload-laravel.git
git@api.gitlife.ru:oschina-mirror/peinhu-aetherupload-laravel.git
oschina-mirror
peinhu-aetherupload-laravel
peinhu-aetherupload-laravel
master