1

Я веб-разработчик, и несколько недель назад у меня появилась странная проблема при загрузке файлов на сервер через FTP.

Некоторые файлы, по-видимому, случайным образом загружаются в виде пустых файлов размером 0 КБ. Сначала я думал, что проблема заключается в сервере моего клиента, но он продолжает происходить с несколькими другими серверами, включая мой, который довольно высокого класса и никогда не сталкивался с подобной проблемой.

Если я повторно загружаю пустые файлы, они загружаются просто отлично, что наводит меня на мысль, что это временная проблема, но затем, если я перезаписываю все это, некоторые другие разные файлы загружаются как пустые. Я вручную искал файлы размером 0kb и заменял их по отдельности, но это не интересно, если у вас есть 1000 файлов CMS с большим количеством папок.

Я пробовал разные FTP-клиенты, и это продолжается. Я думал, что мой жесткий диск может быть проблемой, поэтому я проверил, используя внешний диск и загрузив оттуда. Та же проблема.

Cyberduck возвращает ошибку PASV 450 (действие не выполнено).

Я читал, что это может быть проблема с сетью, и следовал инструкциям, чтобы изменить MTU сети на 1300, но безуспешно.

Я использую OS X 10.8.2.

2 ответа2

1

Я бы рекомендовал включить Logging on Cyberduck на Mac, а затем, поскольку у вас также есть собственный FTP-сервер, включить ведение журнала на FTP-сервере.

Когда возникает проблема, запишите точное имя файла и дату / время ошибки, затем проверьте оба файла журнала, клиента и сервера, чтобы увидеть, есть ли что-нибудь очевидное.

Если сервер возвращает ответ уровня 400 от команды PASV, может быть проблема на сервере, генерирующем доступный порт данных для использования для передачи файла. Это может быть нехватка ресурсов, или какое-то другое ограничение сервера поражается.

Странная часть этого - 0-байтовый файл. Если команда PASV выполняется до команды STOR и возвращает отрицательный ответ уровня 400, клиент не должен выдавать STOR для создания файла, поэтому вы не должны видеть никаких файлов, создаваемых на сервере. Однако, если в клиенте есть сбой, и он отправляет имя файла STOR перед командой PASV, это может создать файл на сервере, ожидающий успешного обмена PASV, а в случае сбоя их файл остается 0-байтовым на сервере.

Просмотр журнала сервера может показать, что происходит.

0

Убедитесь, что ваша система настроена на использование пассивного режима для передачи по FTP.

В Системных настройках перейдите в Сеть → Дополнительно ...→ Прокси и убедитесь, что установлен флажок Использовать пассивный режим FTP (PASV).

Вкратце, противоположностью пассивного режима является активный режим, когда сервер инициирует соединение с клиентом. Если сервер не может открыть это соединение (из-за брандмауэров, NAT-маршрутизации и т.д.), Загрузка файла завершается с ошибкой 450.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .