Posted 28 мартаMar 28 comment_201858 В приложении Загрузки выложены большие файлы, размером до 900мб. Раньше всё работало нормально, люди точно их скачивали. А сейчас стали жаловаться что файлы битые. Я проверил - файлы обрезаются на 500 МБ (524 935 361 байт). Движок был 4.7.15, обновление до 4.7.16 не помогло. В настройках вроде бы нигде нет лимита (да и было бы предупреждение, а не так что половина файла скачалась и обрыв). В логах в админке никаких событий в это время не было. В админке изучил отчёт phpinfo - нигде никаких лимитов в районе 500 МБ там нет. Выключил в настройках антилич-защиту - не помогло. Через Download Master в многопоточном режиме файл качается нормально. Урезал настройки Download Master для однопоточного скачивания - через 500 МБ - Socket disconnected. Куда копать? Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/ Share on other sites Больше вариантов
28 мартаMar 28 comment_201859 Что там с таймаутами у веб-сервера? Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201859 Share on other sites Больше вариантов
28 мартаMar 28 Author comment_201860 37 минут назад, Zero108 сказал: Что там с таймаутами у веб-сервера? Где их смотреть? Виртуальный хостинг, cPanel, LiteSpeed. Но врядли в таймаутах дело, канал до сервера медленный, скорость в разное время - весьма разная, но во всех опытах файл обрезается чётко на 500мб. При зажатии скорости в файлокачалке - эти 500мб качает соответственно в несколько раз дольше, но так же упирается именно в 500мб (потом - обрыв и начинает докачку). Взаимосвязи со временем явно нет, взаимосвязь только с размером. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201860 Share on other sites Больше вариантов
28 мартаMar 28 comment_201861 Хостеру напиши. Вероятно, поставили лимит, чтобы пользователи оперативу не потребляли сверх нормы. Попробуй сделать тестовый файл больше 500 мегабайт - zip, положи его в корень сайта и попробуй скачать в браузере, минуя скрипты сайта, то есть напрямую. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201861 Share on other sites Больше вариантов
28 мартаMar 28 Author comment_201862 3 часа назад, Zero108 сказал: Хостеру напиши. Пока ничего внятного не ответили, сказали типа поднимите post_max_size upload_max_filesize - но у меня там было 192M, а файл режется на 500M. Написал в этих опциях 900M, через phpinfo() вижу что 900M установлено. Но итог прежний. Из IPS файлы обрезаются на 500мб. 3 часа назад, Zero108 сказал: Попробуй сделать тестовый файл больше 500 мегабайт - zip, положи его в корень сайта и попробуй скачать в браузере, А так файлы более 500мб нормально скачиваются. Значит виноват либо php либо баг в IPS последних версий... И что делать дальше? Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201862 Share on other sites Больше вариантов
28 мартаMar 28 comment_201866 Закачал в 4.7.16 файл на 800 мегов, скачался без проблем. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201866 Share on other sites Больше вариантов
29 мартаMar 29 comment_201871 У тебя в приложении Загрузки (Downloads) эти проблемные файлы загружены в базу данных или добавлены по прямым ссылкам? Если по ссылкам, куда ведут эти ссылки: на твой сервер или в облачное хранилище? Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201871 Share on other sites Больше вариантов
29 мартаMar 29 Author comment_201873 Стало понятно что дело не в IPS. Через php-скрипты не отдаются файлы более 500мб. Даже в Wordpress плагины для файлового архива, тоже отдающие файлы через php, в итоге на 500мб обрезают отдачу файла. Весь гугл заспамлен проблемой аплоада файлов через php, но с аплоадом у меня всё нормально. В тот же IPS я спокойно заливаю файл на 800мб, он на диске виден что 800, а скачать обратно через php - режется на 500. Какой-то лимит у хостера, ищут проблему. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201873 Share on other sites Больше вариантов
29 мартаMar 29 comment_201874 Так вы базу данных закачиваете эти файлы? Я больше 100 мегабайт в базу данных не закачиваю. Файлы до 3 ГБ скачиваются по ссылкам с диска. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201874 Share on other sites Больше вариантов
29 мартаMar 29 Author comment_201876 14 минут назад, Zero108 сказал: Так вы базу данных закачиваете эти файлы? Не в базу, всё на диске лежит. IPS модуль Загрузки кажется вообще давно разучился закачивать файлы в базу, только на диск. Где у него такая настройка? 38 минут назад, Zero108 сказал: Файлы до 3 ГБ скачиваются по ссылкам с диска. А как это сделать? Вроде всё в админке облазил - не нашёл. Опция анти-лич (Сообщество - ЗАГРУЗКИ - Настройки - Основные настройки) не влияет никак. Из каталога загрузок файлы в любом случае отдаётся php-скриптом, прямой ссылки на файл пользователю не показывается. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201876 Share on other sites Больше вариантов
29 мартаMar 29 comment_201877 32 минуты назад, f2065 сказал: А как это сделать? У меня для скачивания по URL используются абсолютные ссылки. Не помню, можно ли использовать относительные. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201877 Share on other sites Больше вариантов
29 мартаMar 29 comment_201878 Если я правильно помню, когда вы загружаете вот сюда, то ваши файлы хранятся в базе данных, а не в виде файлов файловой системы вашего сайта. Edited 29 мартаMar 29 by Zero108 Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201878 Share on other sites Больше вариантов
29 мартаMar 29 Author comment_201879 Не, файлы в файловой системе. Это задаётся в разделе Система - Обзор - Файлы - Настройки хранения. Там у меня всех хранений созданы конфигурации в папках файловой системы, SQL нигде не используется. Вобщем файлы сейчас физически лежат в файловой системе (правда имена у них хэшированые). Но модуль Загрузки их отдаёт только через php (видимо для детального учёта статистики). Вопрос в том как бы заставить IPS Загрузки отдавать файлы напрямую, не прогоняя через php. Перезагружать всё и прописывать URL - это не выход, хотелось бы как-то глобально в админке. Да и хэширование имён тоже препятствует простому созданию ссылок. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201879 Share on other sites Больше вариантов
29 мартаMar 29 comment_201884 Поменять систему загрузки для downloads. Если у вас nginx, то отдавать с заголовком X-Accel-Redirect. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201884 Share on other sites Больше вариантов
29 мартаMar 29 comment_201886 У меня так было сделано одно время, на 3.х В server{} nginx создаем location /uploads { root /home/user/; internal; } root указывает на корневую директорию форума. Рестартуем nginx. в app../downloads/modules/front/downloads/view.php перед /* Print the file, honoring ranges */ вставляем header("X-Accel-Redirect: /uploads/" . $file->container.'/'.$file->filename;); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $file->originalFilename); exit; После этого файлы будет отдавать nginx, а не движок форума. Edited 29 мартаMar 29 by Desti Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201886 Share on other sites Больше вариантов
29 мартаMar 29 comment_201887 Если хочется отдавать контент по типу, то заменить вторую строку на header('Content-Type: '.\IPS\File::getMimeType( $file->originalFilename )); Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201887 Share on other sites Больше вариантов
29 мартаMar 29 comment_201888 Desti так в чем проблема то отдавать через движок? Что мешает в данном случае? Вот городить костыли не хочется, если честно. Забыть легко потом после обновления. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201888 Share on other sites Больше вариантов
29 мартаMar 29 Author comment_201899 Решение проблемы - техподдержка хостера увеличила следующие параметры веб-сервера LiteSpeed maxReqBodySize: 500M -> 1024M maxDynRespSize: 500M -> 1024M И тогда php нормально отдаёт файлы более 500мб... Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201899 Share on other sites Больше вариантов
29 мартаMar 29 comment_201900 3 часа назад, Zero108 сказал: так в чем проблема то отдавать через движок? Что мешает в данном случае? Вот городить костыли не хочется, если честно. Забыть легко потом после обновления Не хочется - не городите, какая проблема. 8 часов назад, f2065 сказал: Вопрос в том как бы заставить IPS Загрузки отдавать файлы напрямую, не прогоняя через php. Это был ответ на вопрос. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201900 Share on other sites Больше вариантов
29 мартаMar 29 comment_201903 1 час назад, f2065 сказал: параметры веб-сервера LiteSpeed Этим софтом мало кто пользуется, но за инфу спасибо. Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201903 Share on other sites Больше вариантов
29 мартаMar 29 comment_201904 1 час назад, f2065 сказал: maxReqBodySize Ну, собственно, вот аналогичный случай. Издержки дешевых хостингов. https://wordpress.org/support/topic/large-digital-file-downloads-ending-early-at-500mb/ Edited 29 мартаMar 29 by Zero108 Link to comment https://ipbmafia.ru/topic/26780-pri-skachivanii-bolshih-fajlov-oni-obrezayutsya/?&do=findComment&comment=201904 Share on other sites Больше вариантов
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.