Используя веб-браузер, мне нужно получить доступ к каталогу на сервере Linux, в котором хранится около 2 000 000 файлов.
Я использую директиву «Alias» в 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 и диском) и получить доступ к этому контенту по мере необходимости.
Очевидно, вы Возможно, мне бы хотелось чего-то более приятного, но общая идея максимального сокращения операций чтения на запрос, надеюсь, ясна.