Voting

: min(nine, zero)?
(Example: nine)

The Note You're Voting On

stefanov at uk dot ibm dot com
17 years ago
In addition to my previous post, I figured out that sftp->fopen->file_get_contents->fwrite has much better performance than ssh2_scp_send.

I've used the following code to test:

<?php
$srcFile
= '/var/tmp/dir1/file_to_send.txt';
$dstFile = '/var/tmp/dir2/file_received.txt';

// Create connection the the remote host
$conn = ssh2_connect('my.server.com', 22);

// Create SFTP session
$sftp = ssh2_sftp($conn);

$sftpStream = @fopen('ssh2.sftp://'.$sftp.$dstFile, 'w');

try {

if (!
$sftpStream) {
throw new
Exception("Could not open remote file: $dstFile");
}

$data_to_send = @file_get_contents($srcFile);

if (
$data_to_send === false) {
throw new
Exception("Could not open local file: $srcFile.");
}

if (@
fwrite($sftpStream, $data_to_send) === false) {
throw new
Exception("Could not send data from file: $srcFile.");
}

fclose($sftpStream);

} catch (
Exception $e) {
error_log('Exception: ' . $e->getMessage());
fclose($sftpStream);
}
?>

For the test I've sent three files with total size of 6kB, and the times to send including connect to the server were:

SFTP -> 15 sec.
ssh2_scp_send -> 22 sec.

Cheers,

Pimmy

<< Back to user notes page

To Top