Я пишу файловое хранилище и хочу улучшить его работу. Загружаются файлы большого размера, кроме этого, после загрузки надо запретить их изменение, поэтому они хранятся в MongoDB GridFS.
Загружаются файлы через REST API в три этапа:
Как это лучше реализовать? Я решил для всего использовать временный ID. При старт-запросе генерируется уникальный tempID и создается файл на диске, имя файла такое же как tempID. При append-запросе отправляется tempID. Обработчик получает tempID, открывает файл с таким именем на диске и дописывает к нему байты. Commit-запрос получает tempID в заголовке и перегоняет файл с таким именем с диска в монгу.
Можно ли реализовать это красивее и надежнее?
Как прикрутить к этому транзакции, чтобы если не произошел коммит, то мета-информация о файла не сохраняется в базе?
Языки: джава или гоу.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости