acredito que geralmente isso é armazenado em um storage de terceiro, porém fiz dessa forma pois esse não era o foco

Não, isso é comum ser no proprio host, pq custa menos. Só usam de terceiros quando fica muito grande a quantidade de imagens!

Quanto a edição da imagem,

Vc não precisa mexer na imagem original se o usuário não mudar a imagem! Pq isso agora parece "certo" mas quando tiver muita gente editando, isso vai gerar um problema de banda enorme!

O que eu faria: na edição colocaria uma thumb da imagem original(pra pessoa saber que tem a imagem) e um campo de enviar imagem logo abaixo(ou um botão mudar imagem, quando clicado abre o campo de upload e...). Ou seja, as coisas mudariam só se o usuário enviasse uma nova imagem(apaga a antiga coloca a nova e tal). Caso contrario nada muda no banco de bados e no banco de imagens!

Valeu uriel. Muito massa saber essa questão de armazenar local vs terceiro.

Sobre a edição, essa questão da thumb já existe no front-end, então quando o usuário escolhe uma foto do seu pc, ele já mostra a prévia da imagem. Se eu entendi bem, então eu teria uma rota separada só para editar uma imagem ?

Da forma como está, há um ícone "Editar produto" em cada um dos produtos que ficam listados em uma página. Quando eu clico nesse ícone, ele abre um formulário, carregando todas as informações do produto, inclusive a foto na thumb. Ai o usuário edita apenas o que ele quer, e envia novamente os dados. Você fala para criar uma rota para receber uma nova imagem, caso o usuário tenha alterado ?

> Se eu entendi bem, então eu teria uma rota separada só para editar uma imagem? Não, não precisa de rota separada! > Ai o usuário edita apenas o que ele quer, e envia novamente os dados. Você fala para criar uma rota para receber uma nova imagem, caso o usuário tenha alterado ? Não! O que to dizendo é que vc só deve mudar no banco o que foi modificado! Os campos modificados. Se o user não editou a imagem não muda no banco e na pasta. Se ele editou muda em ambos. Não precisa de outra rota pra isso. Só precisa de uma lógica pra saber o que foi e o que não foi editado
Entendi. Acho que nos campos de texto é facil identificar isso, mas a imagem deve ser um pouco mais complicado. Mas vou tentar encontrar algo a respeito disso. Obrigado.
O melhor mesmo seria conseguir identificar se é a mesma imagem no client-side, pq se não, se eu tiver que verificar no back-end, quer dizer que uma requisição foi feita de qualquer forma. Eu estaria poupando a conexão com o banco, e o tempo de realizar a query, mas a mesma imagem seria enviada de qualquer forma né ?
> O melhor mesmo seria conseguir identificar se é a mesma imagem no client-side, pq se não, se eu tiver que verificar no back-end, isso mesmo
Beleza, muito obrigado, já me deu uma luz sobre o que fazer.