Почему Net::SSH2::File позволяет записывать только 32500 байт?

У меня есть Linux-машина Redhat 5.5, использующая Perl Net::SSH2 для sftp-файла. Похоже, что как только дескриптор файла открыт для записи, я могу записать только максимальную длину буфера 32500 байт для каждого вызова $fh->write($buffer). Мне пришлось ограничить чтение моего файла до 30*1024 байт, прежде чем записывать его в дескриптор файла Net::SSH2::File. Разве я не могу написать буфер большего размера? Размер файла, который я копирую, составляет около 800 КБ. Буфер, о котором я говорю, - это размер блока записи. Я могу постоянно писать этот размер куска.


person dminear    schedule 14.09.2011    source источник
comment
Вы имеете в виду, что вы можете писать не более ~ 32 КБ за раз? Или что после того, как в общей сложности ~ 32 КБ (скажем, записать 1 КБ 32 раза), программа зависает?   -  person mob    schedule 14.09.2011
comment
Да, 32500 байт на запись. Габриэль Росс попал в самую точку.   -  person dminear    schedule 16.09.2011


Ответы (1)


По-видимому, это жестко запрограммированное ограничение в Net::SSH2. Глянь сюда:

http://www.libssh2.org/mail/libssh2-devel-archive-2010-06/0104.shtml

person Gabriel Ross    schedule 14.09.2011