diferenças de tamanho de arquivo depois de copiar um arquivo para um servidor FTP vía

votos
35

Eu criei um script PHP para atualizar um servidor web que está vivo dentro de um diretório local. Eu estou migrando o script em Python. Ele funciona muito bem para a maior parte, mas depois de um PUT comandar o tamanho do arquivo parece mudar. Assim, o tamanho do arquivo é diferente daquele do arquivo no servidor.

Uma vez que eu baixar novamente o arquivo a partir do servidor FTP, a única diferença é a marca de CR / LF. Isso me irrita, porque o mesmo script é comparar o tamanho dos arquivos para atualizar. Além disso, no caso, significa qualquer coisa, o script funciona perfeitamente no ftp_put PHP vía.

from ftplib import FTP

ftpserver = myserver
ftpuser = myuser
ftppass = mypwd

locfile =  g:/test/style.css
ftpfile =  /temp/style.css

try:
    ftp = FTP(ftpserver, ftpuser, ftppass)
except:
    exit (Cannot connect)

f = open (locfile, r)
try:
    ftp.delete (ftpfile)
except:
    pass

# ftp.sendcmd (TYPE I)
# ftp.storlines(STOR %s % ftpfile, f)
ftp.storbinary(STOR %s % ftpfile, f)
f.close()

ftp.dir (ftpfile)
ftp.quit()

Alguma sugestão?

Publicado 05/08/2008 em 14:40
fonte usuário
Em outras línguas...                            


3 respostas

votos
15

Você precisa abrir o LOCFILE em binário usando rb?

f = open (locfile, "rb")
Respondeu 05/08/2008 em 14:45
fonte usuário

votos
3

Bem, se você vá sob as propriedades do arquivo no Windows ou em um ambiente * nix, você vai notar dois tamanhos. Um deles é o tamanho do setor, e um é o tamanho real. O tamanho do setor é o número de setores em bytes que são usados ​​até no seu disco rígido. Isso porque dois arquivos não podem estar no mesmo setor com a maioria dos sistemas de arquivos modernos, por isso, se seu arquivo enche metade do setor de todo o setor é marcado como preenchido.

Então você pode estar comparando o tamanho do arquivo do setor para o tamanho do arquivo real no servidor FTP ou vice-versa.

Respondeu 05/08/2008 em 14:45
fonte usuário

votos
0

Pequenos arquivos ocupam um nó inteiro sobre o sistema de arquivos seja qual for o tamanho que é.

Meu anfitrião tende a relatar todos os arquivos pequenos como 4KB no ftp, mas em uma casca dá um tamanho exato para que ele possa ser um 'recurso' comum para ftp clientes.

Respondeu 05/08/2008 em 16:59
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more