Есть в компании портал на котором оптовые клиенты делают заказы на продукцию которую формируют, производят и отгружают. Это портал (dealers.ekzorchik.ru
) ранее упоминавшийся у меня в заметках (я его переносил с FreeBSD
на Ubuntu 18.04 Server
), он также располагается виртуальном выделенном сервере сервиса "CloudLite"
где задействован для скидки мой промо-код «CloudLITE4116
«, компания экономит, а не транжирит деньги на право и налево. Ну так вот, от Web
-разработчика поступила задача: Настроить чтобы из директории /docs/
скачивались файлы с русским именованием: xls,pdf,docx
в которых содержится Важная информация для клиентов.
Для решения поставленной задачи коллеги:
Открываем конфигурационный файл портала dealers
и для местоположения docs
прописываем Location:
В файле mime.types
у nginx
все расширения есть.
в самом nginx.conf
прописано "include /etc/nginx/mime.types;"
aollo@ekzorchik.ru:~$ sudo nano /etc/nginx/sites-available/dealers.conf location /docs/ { add_header Content-Type "text/html; charset=UTF-8"; autoindex on; autoindex_localtime on; autoindex_format html; #Округляем размер файлов до мегабайт autoindex_exact_size off; if ( $request_filename ~ "^.*/(.+\.(pdf|xlsx?|docx?))$"){ set $fname $1; add_header Content-Disposition 'attachment; filename="$fname"'; } }
На заметку: конструкция "docx?"
означает в регулярке, что "x"
может и не быть, т.е. "docx?"
совпадает как с "doc"
, так и с "docx"
aollo@ekzorchik.ru:~$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful aollo@ekzorchik.ru:~$ aollo@ekzorchik.ru:~$ sudo chown -R www-data:www-data /var/www/html/dealers/docs aollo@ekzorchik.ru:~$ sudo chmod -R 755 /var/www/html/dealers/docs
Вроде все правильно, но так как файлы у меня на русском языке с пробелами:
aollo@ekzorchik.ru:~$ sudo ls -l /var/www/html/dealers/docs total 11812 -rwxr-xr-x 1 www-data www-data 5 Oct 18 09:04 test.txt -rwxr-xr-x 1 www-data www-data 75776 Aug 18 10:47 'Бланк рекламации на ГИ.xls' -rwxr-xr-x 1 www-data www-data 49229 Oct 14 14:26 'Доп. соглашение к договору на поставку ГИ.docx' -rwxr-xr-x 1 www-data www-data 404313 Feb 1 2021 'из 1С в Мегу.pdf' -rwxr-xr-x 1 www-data www-data 490779 Oct 4 15:05 'Неисправности негарантийных изделий.pdf' -rwxr-xr-x 1 www-data www-data 50688 Aug 18 08:36 'Сочетание лента-лесенка-карниз_1-2inch_дерево-павловния-бамбук-пластик-алюминий.xls' -rwxr-xr-x 1 www-data www-data 43008 Aug 18 08:36 'Сочетание лента-лесенка-карниз_16мм-ekzorchik.ru.xls' -rwxr-xr-x 1 www-data www-data 60928 Sep 9 12:53 'Сочетание лента-лесенка-карниз_25мм-ekzorchik.ru.xls' -rwxr-xr-x 1 www-data www-data 931876 Oct 4 14:58 'Стандарт качества для вертикальных жалюзи.pdf' -rwxr-xr-x 1 www-data www-data 1284574 Oct 4 14:58 'Стандарт качества для горизонтальных жалюзи Алюминий 16-25-50.pdf' -rwxr-xr-x 1 www-data www-data 1031996 Oct 4 14:58 'Стандарт качества для горизонтальных жалюзи Венус 16-25.pdf' -rwxr-xr-x 1 www-data www-data 2251939 Oct 4 14:58 'Стандарт качества для горизонтальных жалюзи ДЕРЕВО-БАМБУК-ПЛАСТИК.pdf' -rwxr-xr-x 1 www-data www-data 516039 Oct 4 15:05 'Стандарт качества для римских карнизов.pdf' -rwxr-xr-x 1 www-data www-data 1193732 Oct 4 14:58 'Стандарт качества для рулонных штор.pdf' -rwxr-xr-x 1 www-data www-data 1446335 Oct 4 14:58 'Стандарт качества для рулонных штор зебра.pdf' -rwxr-xr-x 1 www-data www-data 499526 Oct 4 15:05 'Стандарт качества для штор Мираж.pdf' -rwxr-xr-x 1 www-data www-data 511574 Oct 4 15:05 'Стандарт качества для шторных моторизованых карнизов.pdf' -rwxr-xr-x 1 www-data www-data 1223062 Oct 4 14:58 'Стандарт качества для штор плиссе.pdf'
То вместо того, что скачиваться как нужно они открываться в нечитаемом виде, виной всему содержание символа пробел в именованиях. Мы их просто переименовываем где вместо символа пробела ставим символ нижнего подчеркивания и файлы из каталога /docs/
успешно при нажатии на искомый скачиваются. Вот такой вот хак на наш взгляд. Этот нюанс был сказал в общем чате
через клиент qip Web
-разработчику:
Сивков Владимир (11:38:03 18/10/2021)
готово, проверил, всё скачивается, спасибо
qip (11:40:27 18/10/2021)
тебе спасибо
Итого, поставленная задача выполнена, на этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.