SyncToy от Microsoft powertoys набор мог бы быть потенциальной фиксацией. Это сохранит файлы в нескольких местоположениях синхронизировавшими, как говорят между файловым сервером и конкретной папкой на Вашем жестком диске, таким образом избавляющем от необходимости волноваться об ограничении соединения. Вы не должны должны быть волноваться о сетевой стабильности с тех пор, если существует отклонение, которое она будет просто синхронизировать после того, как она восстановит.
Это не будет синхронизировать открытые файлы, но если программа закрывает файл, это должно смочь захватить и копировать его. Программа должна обработать все автоматизированное обнаружение закрытых файлов для Вас.
Необходимо было бы запланировать его для выполнения, и направления находятся в документации Справки, просто устанавливают задачу регулярно работать.
Если параметры для запроса GET неверны, канонически нужно отправить обратно либо 404 (не найдено), либо 200 (ОК).
Способ использования RESTful GET запросы - это запрос ресурса (получение чего-либо). Следовательно, если необходимые параметры не соответствуют существующему ресурсу (потому что они неполны), вы можете точно сказать, что ресурс, запрошенный в URI, не найден.
На практике, если вы хотите избежать таких вещей, как игнорирование браузерами свою страницу 404 и заменяя их собственной (я смотрю на IE 9 и 10), вы можете использовать 200. Если вы считаете свое приложение ресурсом, 200 подходит; вы запросили приложение, и оно вернуло результат (это была ошибка, но не на уровне HTTP). Однако это использование не очень RESTful.
Ошибка 417
должна возникать только тогда, когда клиент отправил заголовок HTTP Expect
, который сервер не смог выполнить, что не имеет отношения ни к какому путь к «ожидаемым входам» приложения в запросе. Не используйте его.
С другой стороны, ошибка 400
должна отправляться только в том случае, если в HTTP-запросе присутствует неправильный синтаксис, который сервер не понимает.
Ни то, ни другое не является действительно подходит для сбоя проверки в логике приложения, хотя я полагаю, что 400
немного более уместно.
Ошибка 403
, которую вы собирались использовать в своем вопросе по переполнению стека на мой взгляд, лучший вариант.
Я просто использовал заголовок 403 Forbidden, когда ожидаемые значения не были найдены в $ _GET, но, если подумать, на самом деле это не действие, требующее входа в систему (не для этого, конечно, пользователь должен войти в систему, чтобы просмотреть панель администратора в первую очередь), это больше похоже на ввод неожиданного значения.
Вы думая о 401
, который является кодом ответа, который используется, когда требуется аутентификация. 403
- это общий отказ от запроса, который звучит именно так, как вы хотите.
Все это предполагает, что вы хотите вернуть код ответа 4xx
.. что имеет смысл для API ... но для HTML-страницы, обращенной к пользователю, вы, скорее всего, захотите отправить 200
с информацией об ошибке в теле.
Вы думаете о 401
, который является кодом ответа, который используется, когда требуется аутентификация. 403
- это общий отказ в запросе, который звучит именно так, как вы хотите.
Все это предполагает, что вы хотите вернуть код ответа 4xx
.. что имеет смысл для API ... но для HTML-страницы, обращенной к пользователю, вы, скорее всего, захотите отправить 200
с информацией об ошибке в теле.
Вы думаете о 401
, который является кодом ответа, который используется, когда требуется аутентификация. 403
- это общий отказ в запросе, который звучит именно так, как вы хотите.
Все это предполагает, что вы хотите вернуть код ответа 4xx
.. что имеет смысл для API ... но для HTML-страницы, обращенной к пользователю, вы, скорее всего, захотите отправить 200
с информацией об ошибке в теле.
Я не могу понять, что вы делаете, однако есть дополнительная опция, которую вы, возможно, не рассматривали - 200 - ОК. Причина в том, что вы получили данные правильно, проблема в том, что они не подходят для вашего приложения, что на самом деле не проблема с протоколом HTTP.
Соответствующий rfc здесь - rfc2616 . Вы можете использовать 400, но затем вам нужно предоставить клиенту возможность изменять данные из rfc
10.4.1 400 Bad Request
Запрос не может быть понят сервером из-за неправильного формата синтаксис. Клиенту НЕ СЛЕДУЕТ повторять запрос без модификации.
Что касается 417, RFC сообщает
10.4.18 417 Ошибка ожидания
Ожидаемое значение, указанное в поле заголовка запроса Expect (см. раздел 14.20) не может быть встречен этим сервером, или, если сервер является прокси, у сервера есть недвусмысленные доказательства того, что запрос не может быть выполнен сервером следующего перехода.
поэтому, если вы не используете ожидаемый заголовок, вам, вероятно, не следует использовать этот ответ.