Com base em que você deve selecionar ACSII ou transferências binárias via FTP?

7

Clientes FTP, incluindo aqueles usados de forma programática, permitem que o usuário selecione ASCII ou transferências binárias ao carregar um arquivo. Alguns clientes também suportam algum tipo de Auto, onde você deixa para o cliente FTP decidir.

Quais são alguns dos motivos corretos para selecionar um formato sobre o outro? Como alguém decide? Além dos clientes que suportam detecção automática, como automatizar essa decisão?

    
por rcampbell 03.06.2009 / 13:20

6 respostas

8

O Windows usa um retorno de carrige e um feed de linha para mostrar o final de uma linha em um arquivo de texto. Unix geralmente usa apenas um (acho que um feed de linha). Quando você ftp arquivos como texto, o programa ftp irá converter os finais de linha para você. No modo binário, o arquivo é transferido exatamente como está. Então, se você está transferindo um documento de texto, use ASCII. Qualquer outra coisa e binário é provavelmente sua melhor aposta. Como outros apontaram, a maioria dos editores de texto modernos lidará com os términos de linha de qualquer maneira (o Bloco de Notas não, nem é moderno :)), então o binário é de longe a opção mais segura. Eu também concordo com @njsf, eu não gosto de arquivos sendo alterados pelas minhas costas. Eu tenho editores que são bem capazes de fazer um find e replace para consertar os finais de linha se for necessário.

    
por 03.06.2009 / 13:30
4

Neste dia e idade, onde a maioria dos editores de texto detecta e adapta automaticamente as terminações de linha do unix / dos / mac, eu acho muito pouca justificativa para usar as transferências de ftp do ASCII. Eu sempre uso binário.

Eu não gosto de ter os arquivos alterados nas capas.

Eu na verdade tento usar scp agora muito mais que ftp, e scp apenas copia os bits ...

    
por 03.06.2009 / 13:37
2

Sempre use binário. Faça a conversão manualmente, se for necessário - é mais provável que nunca seja necessário.

O modo ASCII faz apenas uma conversão de fim de linha entre sistemas de diferentes obediências. É absolutamente inútil hoje em dia. A maioria dos editores se adapta, os analisadores XML os ignoram principalmente, você só enfrenta problemas ao tentar compilar arquivos .c ou executar arquivos sh no Unix que possuem terminação de linha do MS-DOS - mas isso geralmente só acontece por causa de uma transferência no modo ASCII perdida .

Diga apenas não ao modo ASCII. Clientes FTP modernos serão padronizados para o BINARY de qualquer maneira.

    
por 03.06.2009 / 13:51
1

Pessoalmente, costumo usar o binário para cada transferência. Eu fui picado uma vez com um arquivo que foi colocado de uma máquina windows em uma máquina unix usando transferência binária. Como resultado, o arquivo txt ainda tinha finais CR LF.

O modo ASCI examina as plataformas source e dest e executa a tradução de fim de linha, então o arquivo resultante que obtive teve terminações de linha CR CR LF (LF foi traduzido por ASCI para CR LF como unix - > windows)

Parece insignificante - mas era um arquivo de log de 20Gb, e eu só tinha uma janela de tempo para coletá-lo.

Eu uso os utilitários de conversão eol na máquina local, se for necessário.

EDIT: Eu estava recebendo o arquivo de volta para o Windows a partir do host unix

    
por 03.06.2009 / 13:37
1

Observe que a transferência de texto para alguns sistemas é acelerada usando o modo de texto (não realmente ASCII) porque eles não usam o conjunto de caracteres. Por exemplo, EBCDIC em mainframes IBM e sistemas similares.

Desde que ambos os sistemas usem o mesmo conjunto de caracteres base, o binário é provavelmente menos complicado.

    
por 03.06.2009 / 13:49
0

Entendendo o que é como o Windows e o Unix codificam uma nova linha no arquivo de texto , e qual é o diferença entre o modo de transferência binário e ASCII permitirá que você responda a essa pergunta sozinho.

    
por 03.06.2009 / 13:50

Tags