Como salvo imagens em um bucket e uso a url delas no frontend?

guys estou com um problema, estou fazendo meu tcc e é um e-commerce e eu preciso armazenar as fotos dos produtos porem eu nao sei como eu tava pesquisando e parece que a unica maneira é com uma url presigned porem isso n parece ser muito seguro n pq depois de 7 dias a url da imagem morre, tem outra forma?

Onde você está hospedando?

azure porem to usando cloudflare r2 como bucket
Você pode deixar o arquivo publico com permissão apenas de visualização com isso já daria pra acessar, outra coisa que poderia fazer é criar uma url. Não usei o r2 ainda, mas em outros buckets isso é relativamente tranquilo.
no r2 so tem como criar urls assinadas com expiração de 7 dias, acho melhor deixar dados publicos como foto de produtos publicos mesmo e caso tenha algum documento sensivel ai sim criar um algoritimo que retorne a url assinada
Dei um aolhadinha aqui, e acredito que da sim pra você dar permissão de apenas leitura de forma publica, isso já resolveria o seu problema, não precisa fazer a assinatura.

Tu está usando AWS ?

Tem muitas formas de você acessar as imagens no seu front. Mas depende muito do contexto. Deixar as imagens do seu bucket publico não e necessariamente um problema, tu pode deixar as imagens publicas e configurar o CORS para aceitar request so do seu site por exemplo. Mas tem um tutorial na AWS utilizando SDK do javascript da uma olhada https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photos-view.html

vc tem que armazenar o caminho no bucket no seu banco e fazer o tratamento de assinatura posterior na recuperação do arquivo, sugiro que faça uma função específica para isso onde vc valide esse cache de 7 dias e renove automaticamente, desta forma vc garante segurança e funcionalidade embora para o que vc quer a segurança não seja um fator decisivo