Reescrita Nginx, removendo dimensões da imagem do nome do arquivo

Reescrita Nginx, removendo dimensões da imagem do nome do arquivo

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.

tentativa regexpal1

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.

informação relacionada