Обработка структурированных файлов FTP в двоичном режиме

#ftp #sftp #tandem #hp-nonstop

#ftp #sftp #тандем #hp-без остановок

Вопрос:

Я пытаюсь передать файл по FTP в тандемную среду HP / Non-Stop. Записи записываются в файл с помощью процесса C, который затем считывается с помощью другого процесса C.

Сам файл содержит некоторые записи, которые не читаются с помощью стандартного текстового редактора. Я понял, что это означало, что для правильной передачи файла мне нужно было передать его в двоичном режиме. Попытка передачи в двоичном режиме приводит к следующим ошибкам.

 ftp> bin
200 Type set to I.
ftp> put SM11098
200 PORT command successful.
553 Error: Structured file transfer only allowed in Ascii mode,
ftp> ascii
200 Type set to A.
ftp> put SM11098
200 PORT command successful.
150 Opening data connection for SM11098 (10.220.98.237,4078d).
552 SM11098: Relative file record length > Maximum record length
ftp: 1576960 bytes sent in 4.08Seconds 386.70Kbytes/sec.
  

Я попытался найти в Google вышеуказанные ошибки, но ничего не появилось.
Структурированный файл для меня звучит как двоичный файл, содержащий структурированные записи. Разве это не должно быть передано по FTP в двоичном режиме? Программа FTP вынуждает меня использовать режим ASCII.

Из-за чего вторая ошибка? (т.е. «Относительная длина записи файла> Максимальная длина записи»)

Ответ №1:

В вашем сообщении не совсем сказано, но звучит так, как будто вы выполняете FTPing с HP-NonStop на HP-NonStop, и ваш исходный файл «структурирован». Вы должны знать, что в среде NonStop «структурированный файл» имеет особое значение: файл отличается от файлов одного типа, найденных в системах * nix или MS-DOS (которые называются неструктурированными файлами в NonStop). Структурированные файлы не являются массивом байтов, но имеют границы записей и, возможно, другие характеристики, некоторые из которых аналогичны характеристикам таблиц SQL.

FTP работает нормально для неструктурированных файлов, но для структурированных файлов вам, вероятно, придется повозиться с дополнительными параметрами. (К сожалению для вас, расширения FTP NonStop — это худший дизайн, найденный в системном программном обеспечении NonStop.) В принципе, вам нужно использовать атрибуты после параметров и в вашей put команде, начиная с типа структурированного файла (который является «e», «k» или «r») и, возможно, других атрибутов. Это сообщает FTP, что вы передаете структурированный файл. Вероятно, вам нужно будет проверить руководство, чтобы получить правильный синтаксис. Для этого вам нужно будет использовать «режим ASCII», несмотря на наличие двоичных данных.

(Ошибка «Относительная длина записи файла», вероятно, вызвана сбоем при передаче структурированного файла. Использование типа файла «r» (что означает «Относительный») было бы уместно, если ваш исходный файл является файлом с относительной структурой.)

Однако, если обе системы работают без остановок, они обычно объединяются в сеть с использованием «расширенной» сети (например, по IP), и тогда копирование файла проще, чем с использованием FTP. Вы бы использовали свой обычный интерпретатор команд и просто поместили имя системы как часть имени файла назначения обычной команды копирования или дубликата.