PHP SFTP/SSH 传输

标签 php ssh sftp transfer

我刚才发布了一个问题,但我问的是 FTP,这是一个错误的问题(doh!)。我需要使用 SFTP/SSH 将图像(例如 test.jpg)从一台服务器自动传输到另一台服务器。

有人可以解释一下我会怎么做吗?我对这种事情完全陌生,所以尽可能多的信息将不胜感激。

感谢您的帮助

<?php

$local_file = "http://localhost/ftptest/logo.png";
$remote_file = "/logo.png";

exec("scp $local_file username:pass@***.**.238.87:$remote_file");

?>

编辑:

最后我发现这是可行的:

<?php

     include('Net/SFTP.php');

     $image = 'logo.jpg'; //image to be uploaded - needs to be in the same directory as this script e.g. just logo.jpg

     $image_contents = file_get_contents($image); // location of image to be uploaded

     $sftp = new Net_SFTP('***.**.**.**'); // server address to connect to
     if (!$sftp->login('***', '***')) { // server login details
         exit('Login Failed');
     }

     echo $sftp->pwd();
     $sftp->put($image, $image_contents); // upload a file $image with the image contents.

?>

无法使 SSH 正常工作,但希望这对将来的人有所帮助:)

最佳答案

这里的情况很常见,您没有提供太多有关您要实现的目标或限制的信息。

图像来自哪里?它需要多快被复制?服务器是集群中的等效节点吗?

既然两台服务器都在使用 HTTP,为什么要使用不同的协议(protocol)来传输内容?

正如 Antonio 所建议的,您可以简单地执行 scp - 但这只有在您设置了 key 对时才有效。

一个更灵活的解决方案(假设需要 ssh)是使用 ssh bindings in PHP

关于PHP SFTP/SSH 传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439668/

相关文章:

php - 打开 session.cookie_secure 会注销我的用户吗?

php - 存储为成员变量的调用回调

php - Codeigniter - 提交后验证失败时重新填充表单

amazon-web-services - 亚马逊 EC2 实例 : Server refused our key

linux - Amazon EC2 Linux 实例(SSH、PuTTY 等)的默认用户名是什么?

c# - 使用 WinSCP 对远程 SFTP 文件夹中的文件进行计数

linux - 如何将所有现有文件从远程 sftp 服务器传输到本地目录并创建一个包含这些文件列表的 .txt 文件?

javascript - History.back 然后发送警报在 Chrome 上不起作用

authentication - GitHub 身份验证如何工作?

java - 使用 JSch 连接到 SFTP 时如何选择网络接口(interface)