Есть ли способ заставить FTP-клиент выдать команду ALLO перед передачей?

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

Ваше здоровье.


person vtortola    schedule 18.04.2011    source источник


Ответы (2)


Я думаю, что @Rob Adams движется в правильном направлении, но я не согласен с отправкой 552, в котором говорится, что вы прерываете передачу; Я думаю, что удержание запроса до тех пор, пока они не отправят ALLO, является более полезным подходом. Чтение RFC 959:

        This (ALLO) command may be required by some servers to reserve
        sufficient storage to accommodate the new file to be
        transferred...

Раздел 4.2 перечисляет допустимый формат ответов, в котором вы можете отобразить ошибку в первой строке и уточнить требование для ALLO во второй строке.

Кроме того, это сообщение содержится в Разделе 4.2.2... 350 Requested file action pending further information.

Кажется разумным, что если ваш сервер получает запрос на сохранение до получения ALLO, он должен выдать 350 и удерживать передачу до тех пор, пока вы не получите тайм-аут сеанса, не закроете или они не отправят ALLO.

person This    schedule 19.04.2011
comment
Я попробую это, когда приеду домой. Я надеюсь, что FileZilla согласится с 350: D - person vtortola; 19.04.2011
comment
@vtortola, если я правильно понимаю эту ошибку, похоже, что они не реализовано ALLO еще - person This; 19.04.2011

Просто предположение - вы можете вернуть 552 - Exceeded storage allocation (for current directory or dataset). для STOR.

person Robᵩ    schedule 18.04.2011
comment
хм... не повезло :) Ответ: Команда: STOR eLqEL.jpg Ответ: 512 Превышен объем памяти (для текущего каталога или набора данных). Спасибо. Ошибка: критическая ошибка передачи файла - person vtortola; 19.04.2011