Как я могу убедиться, что если я делаю загрузку HTTP-файла (например, скажите, чтобы обновить существующий файл из v1 в моем веб-приложении до версии v2), что он действует транзакционно?Как обеспечить загрузку HTTP-файлов (например, multipart и т. Д.)?
В этом случае предполагается, что мое веб-приложение имеет файл v1, но в качестве части интерфейса администратора я могу обновить этот файл. Если при загрузке v2 возникает проблема с загрузкой файла, я хочу, чтобы v1 все еще был на месте, а не некоторая коррумпированная копия v2.
Другим способом задать этот вопрос может быть вопрос, могу ли я позволить серверному файлу загрузить код, чтобы указать файл непосредственно туда, куда он должен идти, или независимо от того, (если загрузка HTTP-файла не является транзакцией) мне действительно нужно для добавления дополнительного кода на стороне сервера, чтобы выполнить двухэтапный процесс: (a) загрузить во временное место, а затем (b) в случае успеха затем перенести его в конечное местоположение (но я все равно хочу дать клиенту указание независимо от того, работала ли общая загрузка или нет), и (c) для обновления также есть серверные части для некоторых полей состояния базы данных.
Это, я думаю, является общим вопросом, однако я могу указать, что в моем случае задним концом является приложение Ruby on Rails.
Любые предложения с точки зрения хорошего подхода приветствуются.
Благодаря
спасибо - делает ручку скрепки, делая вещи «транзакционными» здесь? – Greg
проверьте с помощью скрепки для бумаги и сделайте это эффективно транзакционным – Greg