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.