Используя веб-браузер, мне нужно получить доступ к каталогу на сервере Linux, в котором хранится около 2 000 000 файлов.
Я использую директиву «Псевдоним» в apache для выполнения этого требования. Пожалуйста, смотрите ниже -
Alias /barcodes/ "/m01/apps/codes/barcodes/"
<Directory "/m01/apps/codes/barcodes/">
Options +Indexes
IndexOptions +TrackModified
AllowOverride None
Order allow,deny
Allow from all
#Doing IndexOrderDefault so to see the files in a descending order (by date/timestamp)
IndexOrderDefault Descending Date
</Directory>
Проблема. Веб-обозревателю требуется много времени для отображения файлов из каталога, и он становится слишком медленным для доступа.
Признайте, если кто-то может помочь в достижении этого требования.
Спасибо..
Так как @Свен указывает, что это невозможно с вашей текущей настройкой.
Прямо сейчас существует ряд возможных узких мест, но наиболее вероятным из них является сам ваш диск.
Для каждого запроса к вашей индексной странице:
В зависимости от ваших реальных потребностей одним из возможных решений может быть создание вашего собственного индексного файла программным способом, избегая каждый раз сканирования всего каталога.
Что-то вроде этого уродливого и непроверенного "скрипта":
#!/bin/bash
DATE="$( date -I )"
echo "<html><head><title>File listing at $DATE <title></head>" > index.html
echo "<body><ul>" >> index.html
for x in `ls -1 FOLDER`; do
echo "<li><a href=\"/path/to/$x\">$x<a></li>" >> index.html
done
echo "</ul></body></html" >> index.html
Затем пользователь может выбрать файл из списка (один файл, читаемый apache и диском) и получить доступ к этому контенту по мере необходимости.
Очевидно, вам, вероятно, захочется чего-то более приятного, но общая идея максимального сокращения операций чтения на запрос, надеюсь, ясна.