Каким образом хранить и именовать всё это дело? Всё кучей в папке? В подпапках?
Понадобится написать немало кода для работы с файлами, а преимуществ не видно.
AlexAll, ого какой динозавр!
Начиная с версии 5.7 https://dev.mysql.com/doc/refman/5.7/en/json.html
Но если нет возможности обновиться, то тоже не страшно.
Можно просто хранить в varchar. Просто нельзя будет производить поиск по полям-характеристикам в JSON средствами SQL, а лишь в самом приложении.
Приложение расчитано на широкий круг пользователей или лишь для работы внутри организации?
Имеется ли опыт работы с построением Web API?
Имеется ли опыт работы построением приложений при помощи "отзывчивых" фреймворков типа Angular? И почему именно Angular (кстати, TypeScript), а не Vue, Preact или другие?
S3 - это протокол работы с объектами посредством HTTP. Есть куча библиотек на разных языках программирования. Поскольку спецификация протокола открыта, то есть разные поставщики услуг, работающих по этому протоколу. Среди них есть даже российские компании, если не ошибаюсь. Amazon - главный поставщик, но и не единственный.
Гуглить: S3-compatible storage
+ www.s3-client.com/s3-compatible-storage-solutions.html
Своя инфрастуктура - это свои сервера и обслуживабщий их персонал, не забывая о их зарплатах и также расходами на электричество.
Хоть тот же Amazon CloudFront. CDN желательно располагать близко к хранилищу S3 во избежание задержек сети. Самостоятельно: Varnish/Apache Traffic Server/HAproxy/и т.д.
Поскольку вопросов по инфраструктуре может быть много, то обычно проще брать облачные услуги и не морочить себе голову. Как делают в нашей компании, например.