При использовании соединения FTPS для передачи файла, в чем разница между передачей в двоичном режиме и передачей в режиме ASCII? - PullRequest
2 голосов
/ 17 сентября 2008

Я использую FTPS соединение для отправки текстового файла [этот файл будет содержать информацию EDI (электронного обмена данными)] в почтовый ящик INOVIS. Я настроил систему на открытие соединения FTPS и с помощью команды PUT записываю файл в папку на FTP-сервере. , Проблема в том, какой режим передачи файлов я должен использовать? Как переключаться между режимами?

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

Ответы [ 7 ]

4 голосов
/ 25 октября 2008

Многие другие ответы на этот вопрос представляют собой набор почти правильной или совершенно неверной информации.

Режим ASCII означает, что файл должен быть преобразован в каноническую текстовую форму на проводе. Среди прочего это означает:

  • Набор символов NVT-ASCII. Даже если исходный файл находится в каком-либо другом наборе символов, таком как ASCII, EBCDIC или UTF-8. Технически это запрещает символы с установленным 8-м битом, но большинство реализаций не будут применять это.
  • Концы строк CRLF.

Режим EBCDIC означает аналогичный набор правил, за исключением того, что данные на проводе должны быть в EBCDIC.

Режим LOCAL позволяет отправлять данные с размером, отличным от 8 бит на байт.

Режим IMAGE (или BINARY) означает, что данные должны отправляться без каких-либо изменений. Пользователь должен убедиться, что целевая система может понять данные после их поступления.

Среди прочего, это означает, что рекомендация использовать режим BINARY для отправки текстовых данных не будет выполнена, если одна из задействованных систем не использует набор символов на основе ASCII.

1 голос
/ 17 сентября 2008

На самом деле, ASCII / BINARY не имеет ничего общего с 8-м битом. Это соглашение для перевода концов строк.

Когда вы работаете на компьютере с Windows и общаетесь с FTP-сервером Unix (FTPS или FTP - не имеет значения - протокол тот же), сервер заменит любую -комбинацию на перед сохранением файла и, следовательно, выполните перевод в обратном порядке, если вы получили файл с сервера unix.

Идея режима ASCII заключается в преобразовании концов строк в соответствующие окончания целевой платформы.

Поскольку современный мир, кажется, сходится к соглашению Unix (), и почти все современные редакторы (кроме блокнота) могут легко обрабатывать Unix-Line-Endings, дни режима ASCII, действительно, сочтены и я непременно рекомендую всегда использовать режим передачи BINARY.

Перспектива изменения данных в середине передачи в любом случае несколько пугает.

1 голос
/ 17 сентября 2008

Режим ASCII изменяет символы новой строки между форматами Unix и DOS. \ n до \ r \ n и наоборот.

0 голосов
/ 17 сентября 2008

Для протокола FTP режим передачи ASCII будет считать 8-й бит каждого вашего персонажа незначительным и будет использовать его для проверки ошибок. Что касается двоичного режима передачи, ваши данные будут отправлены как есть. Обратите внимание, что отправка двоичных данных в режиме ASCII (почти) всегда приводит к повреждению данных. Однако передача данных ASCII в двоичном режиме будет работать до тех пор, пока отправляющая и принимающая системы будут использовать 8-й бит одинаково (в современной системе 8-й бит должен оставаться равным 0, чтобы предотвратить конфликт с расширенными кодировками ASCII).

0 голосов
/ 17 сентября 2008

Режим ACSII преобразует текстовые файлы между форматами UNIX и Windows на основе серверной и клиентской платформы (CR / LF против LF), а Binary - нет. Конечно, если вы передадите почти что-нибудь в режиме ASCII, которое не является текстовым, по этой причине оно, вероятно, будет повреждено.

0 голосов
/ 17 сентября 2008

Режим ASCII также упрощает обмен файлами с текстовыми файлами на разных платформах для конечных пользователей. Им не придется беспокоиться об окончании строки по умолчанию (например, cr / lf, а не просто lf), поскольку режим ASCII выполнит этот перевод для них на лету.

Для большинства типов файлов вы ВСЕГДА хотите использовать режим BINARY.

0 голосов
/ 17 сентября 2008

Если вы хотите точную копию данных, используйте двоичный режим - при использовании режима ascii предполагается, что данные представляют собой 7-битный текст (символы 0-127), и обрезаются любые данные за пределами этого диапазона. Даты восходит к тайным 7-битным сетевым дням, когда режим ASCII может сэкономить ваше время.

В глобализированной среде, в которой мы живем, - такой, что довольно часто можно найти не-ascii символы, например, иностранные языки, символы валют и т. д. - вы всегда должны использовать режим BINARY.

...