无法使用 cURL 删除 SFTP 文件
Cannot delete a SFTP file using cURL
我在删除或使用带有 cURL 的 rm
时遇到了一个奇怪的问题。当我尝试在 FileZilla 上使用相同的凭据删除或移动文件时它工作得很好,但当通过 cURL 运行 它时不起作用。我的代码有什么问题吗?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sftp_server.$file_name);
curl_setopt($ch, CURLOPT_USERPWD,$user_pwd);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch, CURLOPT_PROTOCOLS,CURLPROTO_SFTP);
curl_setopt($ch, CURLOPT_QUOTE, array('rm ~/folder/' . $file_name));
curl_exec($ch);
curl_close($ch);
我使用 cURL 下载 SFTP 文件也没有任何问题。
当我 var_dump()
curl 结果时,我得到一个权限被拒绝“curl: (21) rm 命令失败:权限被拒绝”。
感谢您的帮助!
我能够通过使用 ssh2_sftp
而不是 cURL 的不同方式连接到 SFTP 来找到解决方案。如果有人可以从中受益,这是我使用的代码片段:
$connection = ssh2_connect('SFTP-Server-name', 22);
ssh2_auth_password($connection, $username, $password);
$sftp = ssh2_sftp($connection);
ssh2_sftp_unlink($sftp, $file_path.$file_name);
我在删除或使用带有 cURL 的 rm
时遇到了一个奇怪的问题。当我尝试在 FileZilla 上使用相同的凭据删除或移动文件时它工作得很好,但当通过 cURL 运行 它时不起作用。我的代码有什么问题吗?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sftp_server.$file_name);
curl_setopt($ch, CURLOPT_USERPWD,$user_pwd);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch, CURLOPT_PROTOCOLS,CURLPROTO_SFTP);
curl_setopt($ch, CURLOPT_QUOTE, array('rm ~/folder/' . $file_name));
curl_exec($ch);
curl_close($ch);
我使用 cURL 下载 SFTP 文件也没有任何问题。
当我 var_dump()
curl 结果时,我得到一个权限被拒绝“curl: (21) rm 命令失败:权限被拒绝”。
感谢您的帮助!
我能够通过使用 ssh2_sftp
而不是 cURL 的不同方式连接到 SFTP 来找到解决方案。如果有人可以从中受益,这是我使用的代码片段:
$connection = ssh2_connect('SFTP-Server-name', 22);
ssh2_auth_password($connection, $username, $password);
$sftp = ssh2_sftp($connection);
ssh2_sftp_unlink($sftp, $file_path.$file_name);