Основная идея была хранить файлы во вложенных папках и иметь короткие имена.
Раскладывает по папкам бэкенд, в качестве ключа используется последняя и предпоследняя цифра идентификатора в базе.
uploads\2\4\242.jpg -> img.localhost/242.jpg
uploads\3\4\243.jpg -> img.localhost/243.jpg
Причина в том что бы в папке не было кучи файлов после аплоада.
##########################
server {
listen 80;
listen [::]:80;
server_name img.localhost;
charset utf-8;
# Расположение логов
access_log logs/img_localhost_access.log combined;
error_log logs/img_localhost_error.log;
location / {
try_files $uri $uri/ @upfiles;
limit_except GET {
deny all;
}
expires max;
}
location @upfiles {
root v:/project/localhost/localhost/wwwroot/uploads;
rewrite ^(/)([0-9]+)([0-9])([0-9])(.jpe?g|.png|.gif|.webm|.bmp|.tiff)$ /$4/$3/$2$3$4$5 last;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
}