
Por exemplo, se uma solicitação for feita para uma imagem como esta...
/static/images/00f37ac6291bb6e8_150.jpeg
Mas a versão em miniatura de 150px ainda não foi gerada e retorna 404, gostaria que experimentasse a imagem base em tamanho real que estará sempre disponível em...
/static/images/00f37ac6291bb6e8.jpeg
como posso fazer com que o nginx faça isso?
Foi isso que comecei, mas estou tendo problemas para descobrir o regex. Também não sei se esta é a melhor maneira de conseguir isso.
location /static/ {
resolver 8.8.8.8;
try_files $uri @redirect;
proxy_pass https://s3.amazonaws.com/<buckets>$request_uri;
}
location @redirect {
rewrite ^(.*)(?=_)(\.*)$ https://s3.amazonaws.com/<buckets>$1;
}
Além disso, é isso que tenho para regexpal com esse regex... Não consigo descobrir como obter a extensão do arquivo.
Atualizar:
Foi o que acabei fazendo e funcionou bem!
location /static/images/ {
resolver 8.8.8.8;
proxy_intercept_errors on;
proxy_pass https://s3.amazonaws.com/my-bucket$request_uri;
error_page 400 401 402 403 404 @redirect;
}
location @redirect {
rewrite ^(.*)\/(.*)(_)[0,1](.*)\.(.+)$ https://s3.amazonaws.com/my-bucket/images/$2.$5;
}
Responder1
eu fui pararegex101.compara testar e este regex ^(.*)\/(.*)(_)[0,1](.*)\.(.+)$
correspondeu a string /static/images/00f37ac6291bb6e8_150.jpeg
. Com esta correspondência $1/$2.$5 seria o caminho para a imagem maior.