Частичная загрузка по FTP с использованием storbinary - PullRequest
0 голосов
/ 28 декабря 2010

Я отправляю xml-файл через ftp на сервер, но он обрезается на 48 КБ из 53 КБ.

Код:

if __name__ == '__main__':

    ftp = ftplib.FTP("IP")
    ftp.login(user = 'NAME', passwd = 'PASS')
    ftp.cwd('/web/content/tree/_demo') 
    a.write('<root>\n' + DirXML(dirname) + '\n</root>')
    f=open(outputname,'rb')
    ftp.storbinary('STOR '+os.path.basename(outputname),f)
    f.close()
    ftp.quit()

Та же проблема, что и здесь: Частичная загрузка со storbinary в python Но, конечно, это не дает ответа. Файл отправляется через FTP-клиент, отправляется через интерпретатор Python, но не через скрипт.

edit: он не выдает никаких исключений, завершает нормально, но когда я смотрю на загруженный файл, он обрезается в конце. Если я удаляю часть ftp и экспортирую файл на мой локальный компьютер, все получается нормально. Отступы были только для меня плохим форматированием.

1 Ответ

0 голосов
/ 29 декабря 2010

Вы используете storlines вместо storbinary.

Первый из них будет выполнять перевод конца строки.

Код storbinary ftplib делает TYPE I перед передачейчтобы убедиться, что режим передачи установлен на изображение.(Двоичный).

Также убедитесь, что переданный вами файл был сброшен или закрыт перед началом передачи.Данные, записанные с помощью вызова write, не могут быть сброшены на диск в тот момент, когда библиотека ftp открывает файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...