Каковы предостережения с увеличением max_post_size и upload_max_filesize? - PullRequest
4 голосов
/ 18 ноября 2009

Я хочу увеличить max_post_size и upload_max_filesize на моем сервере, чтобы мое приложение обрабатывало большие файлы (размером до 2 ГБ). Но прежде чем я это сделаю, каковы предостережения? Очевидно, была причина, по которой разработчики PHP установили низкий размер. Нужно ли мне определенное количество оперативной памяти для работы? Любое понимание будет полезно.

Ответы [ 3 ]

2 голосов
/ 18 ноября 2009

Одна из самых больших проблем, которые я вижу, это то, что ПОСТЫ - это одноразовая сделка. Под этим я подразумеваю, что если ваш клиент загружает очень большой файл, и прерывание сети происходит, когда они завершены на 90%, ему придется начинать с нуля.

Я полагаю, что есть решения на основе Flash и Java, которые загружают файл частями для восстановления на вашем сервере. Я использовал только один, созданный для сервиса Amazon S3 под названием Jets3t, но, надеюсь, кто-то другой может порекомендовать другой.

0 голосов
/ 18 ноября 2009

Это больше проблема безопасности, давайте представим, что кучка хакеров решили атаковать ваш сайт и начать загружать файлы размером 1,99 гига со многих машин.

Диск вашего сервера будет заполнен в кратчайшие сроки, и сервер в значительной степени замедлится и станет непригодным для использования.

Из-за проблемы с памятью, о которой упоминал Натан , я думаю, что это миф, PHP хранит некоторые данные в памяти, но в то же время сбрасывает их и на диск, поэтому объем памяти должен быть почти нормальным.

Возможно, вы захотите предоставить своего пользователя FTP-доступ, поэтому в вашем приложении они смогут просматривать каталог ftp и импортировать любой выбранный файл. FTP позволяет добавлять и легко восстанавливаться в случае разрыва соединения.

Также следует отметить, что с точки зрения пользовательского опыта загрузка 2-гигабайтного файла в браузер действительно плохая, так как ваш браузер зависает в течение нескольких минут, и вы не знаете, застрял ли он в процессе, поэтому используйте некоторые Flash / апплет решение на основе FTP или FTP, где у пользователя есть обратная связь, действительно лучше.

0 голосов
/ 18 ноября 2009

Размещенные данные передаются в память во время публикации. Умножьте максимальный размер публикации на количество пользователей, которых вы ожидаете разместить максимум в любой точке, и это количество памяти, которое вам понадобится для хранения опубликованных данных во всех сеансах / процессах.

Максимальный размер загружаемого файла должен быть меньше максимального размера сообщения. Разница между максимальным размером сообщения и размером загружаемого файла - это количество данных, оставшихся доступными для таких вещей, как аннотации или содержимое сообщения.

Но на самом деле предоставление пользователям возможности размещать до 2 Гб делает легкую атаку DOS. Даже если вы ограничиваете доступность приложения для корпоративных пользователей в локальной интрасети, недовольному сотруднику не составит труда причинить вам головную боль.

Конечно, вы могли бы просто поставить действительно большой объем оперативной памяти в коробку на 64-битной платформе, но я полагаю, это зависит от того, сколько денег вы хотите потратить.

...