Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Net::SSH2::File(3)    User Contributed Perl Documentation   Net::SSH2::File(3)

       Net::SSH2::File - SSH2 SFTP file	object

       An SFTP file object is created by the Net::SSH2::SFTP "open" method.

   read	( buffer, size )
       Read size bytes from the	file into a given buffer.  Returns number of
       bytes read, or undef on failure.

   write ( buffer )
       Write buffer to the remote file.

       The "libssh2_sftp_write"	function wrapped by this method	has a complex
       and quite difficult (if not impossible at all) to use API. It tries to
       hide the	packet pipelining being	done under the hood in order to	attain
       decent throughput.

       Net::SSH2 can not hide that complexity without negatively affecting the
       transmission speed so it	provides just a	thin wrapper for that library

       An excerpt from "libssh2_sftp_write" manual page	follows:


	 Starting in libssh2 version 1.2.8, the	default	behavior of libssh2
	 is to create several smaller outgoing packets for all data you	pass
	 to this function and it will return a positive	number as soon as the
	 first packet is acknowledged from the server.

	 This has the effect that sometimes more data has been sent off	but
	 isn't acked yet when this function returns, and when this function
	 is subsequently called	again to write more data, libssh2 will
	 immediately figure out	that the data is already received remotely.

	 In most normal	situation this should  not cause any problems, but it
	 should	be noted that if you've	once called libssh2_sftp_write() with
	 data and  it returns short, you  MUST still assume that  the rest of
	 the data  might've been cached	 so you	need  to make sure  you	don't
	 alter that  data and think  that the version  you have	in  your next
	 function invoke will be detected or used.

	 The reason  for this funny behavior  is that SFTP can	only send 32K
	 data in each packet and it gets all packets acked individually. This
	 means we  cannot use a	 simple	serial approach	 if we want  to	reach
	 high performance even on high latency connections. And	we want	that.

       Returns file attributes;	see Net::SSH2::SFTP::stat.

   setstat ( key, value... )
       Sets file attributes; see Net::SSH2::SFTP::setstat.

   seek	( offset )
       Set the file pointer offset.

       Returns the current file	pointer	offset.


       Check Net::SFTP::Foreign	for a high level, perlish and easy to use SFTP
       client module. It can work on top of Net::SSH2 via the
       Net::SFTP::Foreign::Backend::Net_SSH2 backend module.

       Copyright (C) 2005, 2006	by David B. Robins <>;

       Copyright (C) 2015 by Salvador FandiA+-o	<>;

       All rights reserved.

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself, either Perl	version	5.8.0 or, at
       your option, any	later version of Perl 5	you may	have available.

       The documentation for this package contains and excerpt from libssh2
       manual pages. You can consult the license of the	libssh2	project	for
       the conditions regulating the copyright of that part.

perl v5.32.1			  2018-08-13		    Net::SSH2::File(3)


Want to link to this manual page? Use this URL:

home | help