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 ?